说明
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。
Redis 客户端可以订阅任意数量的频道。
pub/sub模式的缺点:
消息的发布是无状态的,无法保证可达。对于发布者来说,消息是“即发即失”的,此时如果某个消费者在生产者发布消息时下线,重新上线之后,是无法接收该消息的。
图示详细操作如下
首先我们需要订阅一个主题
然后我们对这个主题进行发布消息,那么订阅的 client 就可以收到相关的消息
在 redis-cli 中实战
我们需要开启三个客户端窗口,其中两个用于做订阅,另外一个用来做发布消息使用
在其中的两个输入订阅的主题
subscribe order::states
下面是两个窗口中订阅对应的主题
在另一个窗口中发布消息
publish order::states order
发布消息以及接受到消息
附录
可以使用 client list 命令来查看当前的链接 client
这里是有三个客户端,其中一个是发布用的,其余两个是 subscribe。
使用 pubsub channels 查询 channel
这里当我们把订阅的两个 redis-cli 关闭之后,再次执行 pubsub channels 时,这里就返回 empty list or set
通过 pubsub numsub order::states 来查询 订阅当前这个消息的频道数
通过 pubsub numpat 返回当前服务器被订阅的模式数量