Redis 設計與實現 (六) 發布訂閱

2022-01-15 01:16:22 字數 2123 閱讀 4321

發布訂閱

發布者--頻道--訂閱者(發布和訂閱都是客戶端頻道是服務端)

1、publish- subscribe 模式

開啟乙個命令窗體,redis訂閱者:

# redis-cli

127.0.0.1:6379>subscribe channel_1

reading messages... (press ctrl-c to quit)

1) "

subscribe

"2) "

channel_1

"3) (integer) 1

然後再開啟乙個命令窗體為redis 發布者:

# redis-cli

127.0.0.1:6379> publish channel_1 "hello"

(integer) 2

127.0.0.1:6379> publish channel_1 "world"

(integer) 2

然後再看看訂閱者的反饋:

127.0.0.1:6379>subscribe channel_1

reading messages... (press ctrl-c to quit)

1) "

subscribe

"2) "

channel_1

"3) (integer) 1

1) "

message

"//訂閱訊息

2) "

channel_1

"//頻道

3) "

hello

"//訊息體

1) "

message

"//訊息

2) "

channel_1

"//訂閱頻道

3) "

world

"//訊息

收到 channle_1=>hello 和 channel_1=>world,發布者廣播的訊息。

2、publish-psubscribe 模式

首先,定義訂閱者訂閱

# redis-cli

127.0.0.1:6379> psubscribe server-*

reading messages... (press ctrl-c to quit)

1) "psubscribe"

2) "server-*"

3) (integer) 1

其次,定義發布者server-1

# redis-cli

127.0.0.1:6379> publish server-1

"server-1

"

再次,定義發布者server-2

# redis-cli

127.0.0.1:6379> publish server-2

"server_2

"

最後,檢視訂閱者訂閱變化

# redis-cli

127.0.0.1:6379> psubscribe server-*reading messages... (press ctrl-c to quit)

1) "

psubscribe

"2) "

server-*

"3) (integer) 1

1) "

pmessage

"2) "

server-*

"3) "

server-1

"//server-1

4) "

server-1

"1) "

pmessage

"2) "

server-*

"3) "

server-2

"//server-2

4) "

server_2

"

3、退訂

unsubscribe 《頻道s>  

punsubscribe 《頻道s>

4、檢視訂閱資訊 pubsub channels

redis 二 發布訂閱

參考資料 redis 4.x cookbook 中文版 redis官方文件 注 本文redis的版本為 5.0.3 注意,如果先發布訊息,然而頻道沒有訂閱者,這時的訊息會被丟失 redis的發布訂閱是乙個訊息推送的機制 發布者 publisher 向指定頻道 channel 發布訊息 message...

Redis七(發布訂閱)

redis 通過 publish subscribe 等命令實現了訂閱與發布模式,這個功能提供兩種資訊機制,分別是訂閱 發布到頻道和訂閱 發布到模式 訂閱者可以訂閱乙個或多個頻道,發布者向乙個頻道傳送訊息後,所有訂閱這個頻道的訂閱者都將收到訊息,而發布者也將收到乙個數值,這個數值是收到訊息的訂閱者的...

Redis3 0 發布與訂閱

redis的發布與訂閱功能由publish subscribe psubscribe等命令組成。通過執行subscribe命令,客戶端可以訂閱乙個或多個頻道,從而成為這些頻道的訂閱者 每當有其他客戶端向被訂閱的頻道傳送訊息時,頻道的所有訂閱者都會收到這條訊息。除了訂閱頻道之外,客戶端還可以通過執行p...