1.简介
Redis发布订阅(pub/sub)是一种消息通信模式。发送者(pub)发送消息,订阅者(sub)接收消息
Redis客户端可以订阅任意数量的频道
2.示例
下面展示了频道 channel1 以及订阅这个频道的三个客户端 ----client2,client5和client1 之间的关系:
当有消息通过PUBLISH命令发送频道 channel 1时,这个消息就会发送给订阅它的三个客户端。
3.命令
订阅频道
subscribe channel [channel...] #订阅给定的一个或多个频道的消息
psubscribe pattern [pattern....] # 订阅一个或多个给定模式的频道
发布频道
publish channel message #将信息发送到指定的频道
退订频道
unsubscribe [channel [channel...]] #指退订给定的频道
punsubscribe [pattern [pattern]] #退订所有给定模式的频道
4.代码示例
[1]先同时开启三个窗口(其中两个模拟订阅方,一个模拟发布方)
[2] 先在两个订阅窗口进行订阅频道的操作
suscribe CCTV5
[3] 在第三个窗口执行发布操作(图中的Integer 2 表示有两个订阅方收到了信息)
publish CCTV5 NBA
[4] 这时两个订阅方会同时收到信息(这时3个窗口)
订阅窗口的界面显示
5.应用场景
这一功能最明显的用法就是构建实时消息系统,比如普通的即时聊天,群聊等功能
[1] 在一个博客网站中,有100个粉丝订阅了你,当你发布新文章,就可以推送消息给粉丝们。
[2] 微信公众号的模式