适用场景
- 直播消息
- 弹幕消息
- 粉丝订阅消息推送
知识点
1、关键字:PUBLISH SUBSCRIBE PSUBSCRIBE
- Redis采用PUBLISH命令发送消息,其返回值为接收到该消息的订阅者的数量。
- Redis采用SUBSCRIBE命令订阅某个频道,其返回值包括客户端订阅的频道,目前已订阅的频道数量,以及接收到的消息,其中subscribe表示已经成功订阅了某个频道。
2、示例:
redis 127.0.0.1:6379> PUBLISH c1 "test"
(integer) 0
redis 127.0.0.1:6379> PUBLISH c2 "test"
(integer) 0
redis 127.0.0.1:6379> SUBSCRIBE c1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
1) "message"
2) "c1"
3) "test"
Redis的订阅操作是阻塞式的,因此一旦客户端订阅了某个频道或模式,就将会一直处于订阅状态直到退出。
3、支持模式匹配
客户端可以使用命令PSUBSCRIBE一次性订阅符合模式匹配的多个频道,例如:
redis 127.0.0.1:6379> PSUBSCRIBE c*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "c*"
3) (integer) 1
1) "pmessage"
2) "c*"
3) "c2"
4) "test2"
c*
表示任意c
开头的频道。
4、注意:
- 订阅方可以提前预定,即使频道不存在。
- 订阅方只能收到订阅之后的消息,订阅之前的消息收不到。
参考
1、Redis发布订阅机制 - yitudake - 博客园
https://www.cnblogs.com/yitudake/p/6747995.html