Redis发布订阅

适用场景

  • 直播消息
  • 弹幕消息
  • 粉丝订阅消息推送

知识点

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

原文地址:https://www.cnblogs.com/52fhy/p/8973563.html