日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
RedisPubSub發(fā)布訂閱(詳細(xì)圖解)
Redis PubSub 模塊又稱發(fā)布訂閱者模式,是一種消息傳遞系統(tǒng),實(shí)現(xiàn)了消息多播功能。發(fā)布者(即發(fā)送方)發(fā)送消息,訂閱者(即接收方)接收消息,而用來(lái)傳遞消息的鏈路則被稱為 
channel。在 Redis 中,一個(gè)客戶端可以訂閱任意數(shù)量的 channel(可譯為頻道)。

消息多播:生產(chǎn)者生產(chǎn)一次消息,中間件負(fù)責(zé)將消息復(fù)制到多個(gè)消息隊(duì)列中,每個(gè)消息隊(duì)列由相應(yīng)的消費(fèi)組進(jìn)行消費(fèi),這是分布式系統(tǒng)常用的一種解耦方式。

發(fā)布/訂閱流程

下面的示例演示了“發(fā)布/訂閱者”模式的工作流程,示意圖如下所示:



圖1:發(fā)布訂閱模式

1) 訂閱者/等待接收消息

首先打開(kāi) Redis 客戶端,然后訂閱了一個(gè)名為“www.biancheng.net”的 channel,使用如下命令:

#訂閱channel
127.0.0.1:6379> SUBSCRIBE www.biancheng.net
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "www.biancheng.net"
3) (integer) 1 

上述示例使用
SUBSCRIBE命令訂閱了名為 www.biancheng.net 的 channel。命令執(zhí)行后該客戶端會(huì)出處于等待接收消息的阻塞狀態(tài)。

2) 發(fā)布者/發(fā)送消息

下面再啟動(dòng)一個(gè) Redis 客戶端,輸入如下命令:

127.0.0.1:6379> PUBLISH www.biancheng.net "this is website"
(integer) 1
127.0.0.1:6379> PUBLISH www.biancheng.net "hello world"
(integer) 1
127.0.0.1:6379> PUBLISH www.biancheng.net "how are you"
(integer) 1

通過(guò)上述PUBLISH命令發(fā)布了三條信息?,F(xiàn)在兩個(gè)客戶端在處于同一個(gè)名為“www.biancheng.net”的頻道上,前者負(fù)責(zé)接收消息,后者負(fù)責(zé)發(fā)布消息。

3) 訂閱者/成功接收消息

完成了上述操作后,您會(huì)在接收消息的客戶端得到如下輸出結(jié)果:

127.0.0.1:6379> SUBSCRIBE www.biancheng.net
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "www.biancheng.net"
3) (integer) 1
1) "message"
2) "www.biancheng.net"
3) "this is website"
1) "message"
2) "www.biancheng.net"
3) "hello world"
1) "message"
2) "www.biancheng.net"
3) "how are you"

常用命令匯總

Redis PubSub常用命令
命令 說(shuō)明
PSUBSCRIBE pattern [pattern ...] 訂閱一個(gè)或多個(gè)符合指定模式的頻道。
PUBSUB subcommand [argument [argument ...]] 查看發(fā)布/訂閱系統(tǒng)狀態(tài),可選參數(shù)
1) channel 返回在線狀態(tài)的頻道。
2) numpat 返回指定模式的訂閱者數(shù)量。
3) numsub 返回指定頻道的訂閱者數(shù)量。
PUBSUB subcommand [argument [argument ...]] 將信息發(fā)送到指定的頻道。
PUNSUBSCRIBE [pattern [pattern ...]] 退訂所有指定模式的頻道。
SUBSCRIBE channel [channel ...] 訂閱一個(gè)或者多個(gè)頻道的消息。
UNSUBSCRIBE [channel [channel ...]] 退訂指定的頻道。

 

基本命令應(yīng)用

下面對(duì)上述常用命令做演示:

#訂閱指定模式的頻道,*代表通配符,會(huì)匹配所有www開(kāi)頭的頻道
127.0.0.1:6379> PSUBSCRIBE www*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "www*"
3) (integer) 1
#按ctrl+c退出阻塞狀態(tài)
^C
C:\Users\Administrator>redis-cli
#查看發(fā)布訂閱系統(tǒng)狀態(tài),返回相應(yīng)的頻道
127.0.0.1:6379> PUBSUB channels
1) "www.biancheng.net"
#退訂指定模式的頻道
127.0.0.1:6379> PUNSUBSCRIBE www*
1) "punsubscribe"
2) "www*"
3) (integer) 0
#退訂指定頻道
127.0.0.1:6379> UNSUBSCRIBE www.biancheng.net
1) "unsubscribe"
2) "www.biancheng.net"
3) (integer) 0

分享標(biāo)題:RedisPubSub發(fā)布訂閱(詳細(xì)圖解)
網(wǎng)頁(yè)地址:http://www.dlmjj.cn/article/dpgsdsp.html