客户端
127.0.0.1:6379> SUBSCRIBE test test2 # 订阅两个频道 test和 test2
Reading messages... (press Ctrl-C to quit) # 订阅之后的客户端就不允许操作了
1) "subscribe"
2) "test"
3) (integer) 1
1) "subscribe"
2) "test2"
3) (integer) 2
1) "message"
2) "test"
3) "hello,test"
1) "message"
2) "test2"
3) "hello,test2"
发送端
127.0.0.1:6379> PUBLISH test hello,test # 往test频道推送信息
(integer) 1
127.0.0.1:6379> PUBLISH test2 hello,test2 # 往test2频道推送信息
(integer) 1
这时候再新建客户端2去订阅test频道
127.0.0.1:6379> SUBSCRIBE test
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "test"
3) (integer) 1
1) "message"
2) "test"
3) "hello,test"
发送端在发送一次
127.0.0.1:6379> PUBLISH test hello,test
(integer) 2
所以发送端能看到有多少人成功接受到推送,类似于微信公众号也有这种功能。
使用场景
- 实时聊天室
- 订阅/关注
- 信息中间件 MQ
参考文章:
redis 发布与订阅原理分析 https://www.cnblogs.com/chenhaoyu/p/11225116.html