Skip to main content

SentinelClient

Struct SentinelClient 

Source
pub struct SentinelClient { /* private fields */ }
Available on crate feature sentinel only.
Expand description

A utility wrapping Sentinel with an interface similar to Client.

Uses the Sentinel type internally. This is a utility to help make it easier to use sentinels but with an interface similar to the client (get_connection and get_async_connection). The type of server (master or replica) and name of the desired master are specified when constructing an instance, so it will always return connections to the same target (for example, always to the master with name “mymaster123”, or always to replicas of the master “another-master-abc”).

Implementations§

Source§

impl SentinelClient

Source

pub fn build<T: IntoConnectionInfo>( params: Vec<T>, service_name: impl AsRef<str>, node_connection_info: Option<SentinelNodeConnectionInfo>, server_type: SentinelServerType, ) -> RedisResult<Self>

Available on crate feature tls-rustls only.

Creates a SentinelClient performing some basic checks on the URLs that might result in an error.

Source

pub fn get_client(&mut self) -> RedisResult<Client>

Returns a Client considering the server type.

Source

pub fn get_sentinel_client(&mut self) -> RedisResult<Client>

Returns a Client connected to the first Sentinel node that responds successfully to ROLE with the expected value.

The function walks through the list supplied in Sentinel::sentinels_connection_info, trying each address in order:

  1. Client::open attempts to build a client for that Sentinel.
  2. We immediately issue ROLE to confirm the node is reachable and is a Setinel node.
  3. The first node that passes both checks, the client is returned.

If none of the Sentinel addresses respond successfully or, an error occurs when establishing a connection, the method returns the appropriate error.

Use this client when you need Sentinel-specific features—e.g. subscribing to +switch-master Pub/Sub events or running topology queries—rather than talking to the Redis master itself.

Source

pub fn get_connection(&mut self) -> RedisResult<Connection>

Creates a new connection to the desired type of server (based on the service/master name, and the server type). We use a Sentinel to create a client for the target type of server, and then create a connection using that client.

Source§

impl SentinelClient

To enable async support you need to chose one of the supported runtimes and active its corresponding feature: tokio-comp or smol-comp

Source

pub async fn async_get_client(&mut self) -> RedisResult<Client>

Available on crate feature aio only.

Returns a Client considering the server type.

Source

pub async fn async_get_sentinel_client(&mut self) -> RedisResult<Client>

Available on crate feature aio only.

Returns a Client connected to the first Sentinel node that responds successfully to ROLE with the expected value.

The function walks through the list supplied in Sentinel::sentinels_connection_info, trying each address in order:

  1. Client::open attempts to build a client for that Sentinel.
  2. We immediately issue ROLE to confirm the node is reachable and is a Setinel node.
  3. The first node that passes both checks, the client is returned.

If none of the Sentinel addresses respond successfully or, an error occurs when establishing a connection, the method returns the appropriate error.

Use this client when you need Sentinel-specific features—e.g. subscribing to +switch-master Pub/Sub events or running topology queries—rather than talking to the Redis master itself.

Source

pub async fn get_async_connection(&mut self) -> RedisResult<AsyncConnection>

Available on crate feature aio only.

Returns an async connection from the client, using the same logic from SentinelClient::get_connection.

Source

pub async fn get_async_connection_with_config( &mut self, config: &AsyncConnectionConfig, ) -> RedisResult<AsyncConnection>

Available on crate feature aio only.

Returns an async connection from the client with options, using the same logic from SentinelClient::get_connection.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T