pub struct Client { /* private fields */ }
Expand description
The client type.
Implementations
sourceimpl Client
impl Client
The client acts as connector to the redis server. By itself it does not do much other than providing a convenient way to fetch a connection from it. In the future the plan is to provide a connection pool in the client.
When opening a client a URL in the following format should be used:
redis://host:port/db
Example usage::
let client = redis::Client::open("redis://127.0.0.1/").unwrap();
let con = client.get_connection().unwrap();
sourcepub fn open<T: IntoConnectionInfo>(params: T) -> RedisResult<Client>
pub fn open<T: IntoConnectionInfo>(params: T) -> RedisResult<Client>
Connects to a redis server and returns a client. This does not actually open a connection yet but it does perform some basic checks on the URL that might make the operation fail.
sourcepub fn get_connection(&self) -> RedisResult<Connection>
pub fn get_connection(&self) -> RedisResult<Connection>
Instructs the client to actually connect to redis and returns a connection object. The connection object can be used to send commands to the server. This can fail with a variety of errors (like unreachable host) so it’s important that you handle those errors.
sourcepub fn get_connection_with_timeout(
&self,
timeout: Duration
) -> RedisResult<Connection>
pub fn get_connection_with_timeout(
&self,
timeout: Duration
) -> RedisResult<Connection>
Instructs the client to actually connect to redis with specified timeout and returns a connection object. The connection object can be used to send commands to the server. This can fail with a variety of errors (like unreachable host) so it’s important that you handle those errors.
sourcepub fn get_connection_info(&self) -> &ConnectionInfo
pub fn get_connection_info(&self) -> &ConnectionInfo
Returns a reference of client connection info object.
sourceimpl Client
impl Client
To enable async support you need to chose one of the supported runtimes and active its
corresponding feature: tokio-comp
or async-std-comp
sourcepub async fn get_async_connection(&self) -> RedisResult<Connection>
Available on crate feature aio
only.
pub async fn get_async_connection(&self) -> RedisResult<Connection>
aio
only.Returns an async connection from the client.
sourcepub async fn get_tokio_connection(&self) -> RedisResult<Connection>
Available on crate features aio
and tokio-comp
only.
pub async fn get_tokio_connection(&self) -> RedisResult<Connection>
aio
and tokio-comp
only.Returns an async connection from the client.
sourcepub async fn get_async_std_connection(&self) -> RedisResult<Connection>
Available on crate features aio
and async-std-comp
only.
pub async fn get_async_std_connection(&self) -> RedisResult<Connection>
aio
and async-std-comp
only.Returns an async connection from the client.
sourcepub async fn get_multiplexed_async_connection(
&self
) -> RedisResult<MultiplexedConnection>
Available on crate feature aio
and (crate features tokio-comp
or async-std-comp
) only.
pub async fn get_multiplexed_async_connection(
&self
) -> RedisResult<MultiplexedConnection>
aio
and (crate features tokio-comp
or async-std-comp
) only.Returns an async connection from the client.
sourcepub async fn get_multiplexed_tokio_connection(
&self
) -> RedisResult<MultiplexedConnection>
Available on crate features aio
and tokio-comp
only.
pub async fn get_multiplexed_tokio_connection(
&self
) -> RedisResult<MultiplexedConnection>
aio
and tokio-comp
only.Returns an async multiplexed connection from the client.
A multiplexed connection can be cloned, allowing requests to be be sent concurrently on the same underlying connection (tcp/unix socket).
sourcepub async fn get_multiplexed_async_std_connection(
&self
) -> RedisResult<MultiplexedConnection>
Available on crate features aio
and async-std-comp
only.
pub async fn get_multiplexed_async_std_connection(
&self
) -> RedisResult<MultiplexedConnection>
aio
and async-std-comp
only.Returns an async multiplexed connection from the client.
A multiplexed connection can be cloned, allowing requests to be be sent concurrently on the same underlying connection (tcp/unix socket).
sourcepub async fn create_multiplexed_tokio_connection(
&self
) -> RedisResult<(MultiplexedConnection, impl Future<Output = ()>)>
Available on crate features aio
and tokio-comp
only.
pub async fn create_multiplexed_tokio_connection(
&self
) -> RedisResult<(MultiplexedConnection, impl Future<Output = ()>)>
aio
and tokio-comp
only.Returns an async multiplexed connection from the client and a future which must be polled
to drive any requests submitted to it (see get_multiplexed_tokio_connection
).
A multiplexed connection can be cloned, allowing requests to be be sent concurrently on the same underlying connection (tcp/unix socket).
sourcepub async fn create_multiplexed_async_std_connection(
&self
) -> RedisResult<(MultiplexedConnection, impl Future<Output = ()>)>
Available on crate features aio
and async-std-comp
only.
pub async fn create_multiplexed_async_std_connection(
&self
) -> RedisResult<(MultiplexedConnection, impl Future<Output = ()>)>
aio
and async-std-comp
only.Returns an async multiplexed connection from the client and a future which must be polled
to drive any requests submitted to it (see get_multiplexed_tokio_connection
).
A multiplexed connection can be cloned, allowing requests to be be sent concurrently on the same underlying connection (tcp/unix socket).
sourcepub async fn get_tokio_connection_manager(
&self
) -> RedisResult<ConnectionManager>
Available on crate features aio
and connection-manager
only.
pub async fn get_tokio_connection_manager(
&self
) -> RedisResult<ConnectionManager>
aio
and connection-manager
only.Returns an async ConnectionManager
from the client.
The connection manager wraps a
MultiplexedConnection
. If a command to that
connection fails with a connection error, then a new connection is
established in the background and the error is returned to the caller.
This means that on connection loss at least one command will fail, but
the connection will be re-established automatically if possible. Please
refer to the ConnectionManager
docs for
detailed reconnecting behavior.
A connection manager can be cloned, allowing requests to be be sent concurrently on the same underlying connection (tcp/unix socket).
Trait Implementations
sourceimpl ConnectionLike for Client
impl ConnectionLike for Client
sourcefn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>
fn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>
Sends an already encoded (packed) command into the TCP socket and reads the single response from it. Read more
sourcefn req_packed_commands(
&mut self,
cmd: &[u8],
offset: usize,
count: usize
) -> RedisResult<Vec<Value>>
fn req_packed_commands(
&mut self,
cmd: &[u8],
offset: usize,
count: usize
) -> RedisResult<Vec<Value>>
Sends multiple already encoded (packed) command into the TCP socket
and reads count
responses from it. This is used to implement
pipelining. Read more
sourcefn get_db(&self) -> i64
fn get_db(&self) -> i64
Returns the database this connection is bound to. Note that this information might be unreliable because it’s initially cached and also might be incorrect if the connection like object is not actually connected. Read more
sourcefn check_connection(&mut self) -> bool
fn check_connection(&mut self) -> bool
Check that all connections it has are available (PING
internally).
sourcefn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>
fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>
Sends a Cmd into the TCP socket and reads a single response from it.
sourceimpl ManageConnection for Client
Available on crate feature r2d2
only.
impl ManageConnection for Client
r2d2
only.type Connection = Connection
type Connection = Connection
The connection type this manager deals with.
type Error = RedisError
type Error = RedisError
The error type returned by Connection
s.
sourcefn connect(&self) -> Result<Self::Connection, Self::Error>
fn connect(&self) -> Result<Self::Connection, Self::Error>
Attempts to create a new connection.
sourcefn is_valid(&self, conn: &mut Self::Connection) -> Result<(), Self::Error>
fn is_valid(&self, conn: &mut Self::Connection) -> Result<(), Self::Error>
Determines if the connection is still connected to the database. Read more
sourcefn has_broken(&self, conn: &mut Self::Connection) -> bool
fn has_broken(&self, conn: &mut Self::Connection) -> bool
Quickly determines if the connection is no longer usable. Read more
Auto Trait Implementations
impl RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnwindSafe for Client
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more