1、是什么
是一種通信模式:發送者(PUBLISH)發送消息,訂閱者(SUBSCRIBE)接收消息,可以實現進程間的消息傳遞
Redis可以實現消息中間件MQ的功能,通過發布訂閱實現消息的引導和分流
2、能干啥
Redis客戶端可以訂閱任意數量的頻道,類似于微信關注多個公眾號
當有新消息通過PUBLISH命令發送給頻道channel時
3、常用命令
3.1、SUBSCRIBE channel [channel.。.]
訂閱給定的一個或多個頻道的信息
推薦先執行訂閱后再發布,訂閱成功之前發布的消息是收不到的
訂閱的客戶端每次可以收到3個參數的消息
消息的種類
始發頻道的名稱
實際的消息內容
3.2、PUBLISH channel message
發布消息到指定的頻道
3.3、PSUBSCRIBE pattern [pattern.。.]
按照模式批量訂閱,訂閱一個或多個符合給定模式(支持*號?號之類的)頻道
3.4、PUBSUB subcommand [argument [argument.。.]]
查看訂閱與發布系統狀態
PUBSUB CHANNELS
由活躍頻道組成的列表
PUBSUB NUMSUB channel [channel.。.]
某個頻道有幾個訂閱者
PUBSUB NUMPAT
只統計使用PSUBSCRIBE命令執行的,返回客戶端訂閱的唯一模式的數量
3.5、UNSUBSCRIBE channel [channel.。.]
取消訂閱
3.6、PUNSUBSCRIBE pattern [pattern.。.]
退訂所有給定模式的頻道
4、案例演示
開啟3個客戶端,演示客戶端A、B訂閱消息,客戶端C發布消息
演示批量訂閱和發布
取消訂閱
5、小總結
Redis可以實現消息中間件MQ的功能,通過發布訂閱實現消息的引導和分流
Pub/Sub缺點
發布的消息在Redis系統中不能持久化,因此,必須先執行訂閱,再等待消息發布,如果先發布了消息,那么該消息由于沒有訂閱者,消息將被直接丟棄
消息只管發送,對于發布者而言消息是即發即失的,不管接收,也沒有ACK機制,無法保證消息的消費成功
以上的缺點導致Redis的Pub/Sub模式就像一個小玩具,在生產環境中幾乎無用武之地,為此,Redis5.0版本新增了Stream數據結構,不但支持多播,還支持數據持久化,相比Pub/Sub更加的強大
審核編輯:黃飛
-
中間件
+關注
關注
0文章
65瀏覽量
18413 -
客戶端
+關注
關注
1文章
297瀏覽量
16991 -
Redis
+關注
關注
0文章
384瀏覽量
11311
原文標題:一文拿捏Redis7 發布訂閱
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
基于SOA的數字電視中間件系統的研究與實現
怎么實現基于NFC手機的RFID中間件的設計?
中間件消息隊列的建模與實現
支持多服務的消息中間件設計與實現
基于中間件技術的異構機器人系統設計及實現
基于JMS的RFID中間件設計與實現
NGB中間件標準考慮因素

常見的中間件有哪些?匯總解析
物聯網軟件系統中的RFID中間件介紹

評論