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

基于ARM平臺(tái)的RFID中間件系統(tǒng)設(shè)計(jì)
常見的中間件有哪些?匯總解析
物聯(lián)網(wǎng)軟件系統(tǒng)中的RFID中間件介紹

RFID中間件是什么東西
基于SOA的RFID中間件如何來設(shè)計(jì)

評(píng)論