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

相關文章
相關標籤/搜索