Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2、client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
- SUBSCRIBE channel [channel …]
- 订阅给指定频道的信息。
- PUBLISH channel message
- 将信息 message 发送到指定的频道 channel
应用场景
在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。
- 今日头条订阅号、微信订阅公众号、新浪微博关注、邮件订阅系统
- 即时通信系统(QQ、微信)
- 群聊部落系统(微信群)
案例
微信班级群class:20170101
,发布订阅模型。学生 A B C:
- "subscribe"
- "redisChat"
- (integer) 1
1) "subscribe"
2) "class:20170101"
3) (integer) 1
1) "message"
2) "class:20170101"
3) "i love peace!"
1) "message"
2) "class:20170101"
3) "i love peace!"
1) "message"
2) "class:20170101"
3) "go to hell"
下一节:Redis事务允许一组命令在单一步骤中执行。事务有两个属性,说明如下: