redis学习之发布与订阅

发布与订阅(又称pub/sub),是一种消息通信模式,特点是订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送二进制字符串消息。每当有消息被发送至给定频道时,频道的所有订阅者都会收到消息。


发布与订阅


SUBSCRIBE(订阅给定的一个或多个频道)

UNSUBSCRIBE(退订给定的一个或多个频道,如果执行时没有给定任何频道,那么退订所有频道)

PUBLISH(向给定频道发送消息)

PSUBSCRIBE(订阅与给定模式相匹配的所有频道)

PUNSUBSCRIBE(退订给订的模式,如果执行时没有给订任何模式,那么退订所有模式)

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:


redis学习之发布与订阅_第1张图片


redis学习之发布与订阅_第2张图片

简单示例


redis学习之发布与订阅_第3张图片

上图中我一共开了三个窗口,第一个窗口作为发送者向频道test1发送消息,第二和第三个窗口作为订阅者订阅了频道test1,发布成功后会返回接收到这条消息的订阅者数量。发出去的消息不会被持久化,也就是说当客户端订阅test1后只能收到后续发布到该频道的消息,之前发送到就收不到了,而当没有订阅者时, 消息会被直接丢弃。


退订后将不会受到发送者发送的消息

redis学习之发布与订阅_第4张图片

redis还支持模式订阅和模式退订,*为模糊匹配符。

订阅所有频道的消息:psubscribe *

比如订阅以ziroom.开头的所有频道:psubscribe ziroom.*

取消所有频道的消息:punsubscribe *

比如取消订阅以ziroom.开头的所有频道punsubscribe ziroom*


源码学习:15天玩转redis



你可能感兴趣的:(redis学习之发布与订阅)