视频教程
大家好,我录制的视频《Java之优雅编程之道》已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定会收获到很多知识的。谢谢大家的支持……
视频地址:
提出问题
Redis如何用命令实现订阅发布
解决问题
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
命令:
SUBSCRIBE channel [channel ...]
订阅给定的一个或多个频道的信息。
PUBLISH channel message
将信息发送到指定的频道。
接下来就用命令实现上图:
例一:
打开redis-cli 客户端(client1),查看当前所有key,只有一个ay_test
订阅key为ay_test的这个channel,如下:
打开另一个redis-cli(client2) 客户端同样订阅key为ay_test的这个channel,如下:
再打开另一个redis-cli 客户端(client3),发布信息,如下:
client1和client2收到的信息如下:
例二:按照规则订阅 可以使用PSUBSCRIBE命令订阅指定的规则
如下:
客户端client1订阅ay_test*这个channel:
127.0.0.1:6379> psubscribe ay_test*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "ay_test*"
3) (integer) 1
1) "pmessage"
2) "ay_test*"
3) "ay_test1"
4) "i am ay_test1"
1) "pmessage"
2) "ay_test*"
3) "ay_test10"
4) "i am ay_test1"
客户端client2发布信息:
127.0.0.1:6379> publish ay_test1 "i am ay_test1"
(integer) 1
127.0.0.1:6379> publish ay_test10 "i am ay_test1"
(integer) 1
127.0.0.1:6379>
只要是符合ay_test*这种格式,client1都可以收到。