redis::aio

Struct PubSub

Source
pub struct PubSub { /* private fields */ }
Expand description

A connection dedicated to pubsub messages.

Implementations§

Source§

impl PubSub

Source

pub async fn new<C>( connection_info: &RedisConnectionInfo, stream: C, ) -> RedisResult<Self>
where C: Unpin + AsyncRead + AsyncWrite + Send + 'static,

Constructs a new MultiplexedConnection out of a AsyncRead + AsyncWrite object and a ConnectionInfo

Source

pub async fn subscribe( &mut self, channel_name: impl ToRedisArgs, ) -> RedisResult<()>

Subscribes to a new channel(s).

let client = redis::Client::open("redis://127.0.0.1/")?;
let mut pubsub = client.get_async_pubsub().await?;
pubsub.subscribe("channel_1").await?;
pubsub.subscribe(&["channel_2", "channel_3"]).await?;
Source

pub async fn unsubscribe( &mut self, channel_name: impl ToRedisArgs, ) -> RedisResult<()>

Unsubscribes from channel(s).

let client = redis::Client::open("redis://127.0.0.1/")?;
let mut pubsub = client.get_async_pubsub().await?;
pubsub.subscribe(&["channel_1", "channel_2"]).await?;
pubsub.unsubscribe(&["channel_1", "channel_2"]).await?;
Source

pub async fn psubscribe( &mut self, channel_pattern: impl ToRedisArgs, ) -> RedisResult<()>

Subscribes to new channel(s) with pattern(s).

let client = redis::Client::open("redis://127.0.0.1/")?;
let mut pubsub = client.get_async_pubsub().await?;
pubsub.psubscribe("channel*_1").await?;
pubsub.psubscribe(&["channel*_2", "channel*_3"]).await?;
Source

pub async fn punsubscribe( &mut self, channel_pattern: impl ToRedisArgs, ) -> RedisResult<()>

Unsubscribes from channel pattern(s).

let client = redis::Client::open("redis://127.0.0.1/")?;
let mut pubsub = client.get_async_pubsub().await?;
pubsub.psubscribe(&["channel_1", "channel_2"]).await?;
pubsub.punsubscribe(&["channel_1", "channel_2"]).await?;
Source

pub async fn ping<T: FromRedisValue>(&mut self) -> RedisResult<T>

Sends a ping to the server

Source

pub async fn ping_message<T: FromRedisValue>( &mut self, message: impl ToRedisArgs, ) -> RedisResult<T>

Sends a ping with a message to the server

Source

pub fn on_message(&mut self) -> impl Stream<Item = Msg> + '_

Returns Stream of Msgs from this PubSubs subscriptions.

The message itself is still generic and can be converted into an appropriate type through the helper methods on it.

Source

pub fn into_on_message(self) -> PubSubStream

Returns Stream of Msgs from this PubSubs subscriptions consuming it.

The message itself is still generic and can be converted into an appropriate type through the helper methods on it. This can be useful in cases where the stream needs to be returned or held by something other than the PubSub.

Source

pub fn split(self) -> (PubSubSink, PubSubStream)

Splits the PubSub into separate sink and stream components, so that subscriptions could be updated through the Sink while concurrently waiting for new messages on the Stream.

Auto Trait Implementations§

§

impl Freeze for PubSub

§

impl RefUnwindSafe for PubSub

§

impl Send for PubSub

§

impl Sync for PubSub

§

impl Unpin for PubSub

§

impl UnwindSafe for PubSub

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.

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.

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.
Source§

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

Source§

impl<T> MaybeSendSync for T