Redis发布订阅

适用场景

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

知识点

一、关键字:PUBLISH SUBSCRIBE PSUBSCRIBEhtml

  • Redis采用PUBLISH命令发送消息,其返回值为接收到该消息的订阅者的数量。
  • Redis采用SUBSCRIBE命令订阅某个频道,其返回值包括客户端订阅的频道,目前已订阅的频道数量,以及接收到的消息,其中subscribe表示已经成功订阅了某个频道。

二、示例:redis

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的订阅操做是阻塞式的,所以一旦客户端订阅了某个频道或模式,就将会一直处于订阅状态直到退出。bash

三、支持模式匹配 客户端能够使用命令PSUBSCRIBE一次性订阅符合模式匹配的多个频道,例如:ui

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开头的频道。url

四、注意:spa

  • 订阅方能够提早预约,即便频道不存在。
  • 订阅方只能收到订阅以后的消息,订阅以前的消息收不到。

参考

一、Redis发布订阅机制 - yitudake - 博客园 https://www.cnblogs.com/yitudake/p/6747995.html.net