適用場景
- 直播消息
- 彈幕消息
- 粉絲訂閱消息推送
知識點
一、關鍵字: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