07 Redis 訂閱與發布

2021-08-14 04:51:18 字數 1673 閱讀 1341

redis的訂閱與發布

redis 的 subscribe 命令可以讓客戶端訂閱任意數量的頻道, 每當有新資訊傳送到被訂閱的頻道時, 資訊就會被傳送給所有訂閱指定頻道的客戶端。

作為例子, 下圖展示了頻道 channel1 , 以及訂閱這個頻道的三個客戶端 —— client2 、 client5 和 client1 之間的關係:

當有新訊息通過 publish 命令傳送給頻道 channel1 時, 這個訊息就會被傳送給訂閱它的三個客戶端:

上面描述了訂閱與發布的關係。

現在我們使用幾個客戶端來模擬一下redis的訂閱與發布

客戶端一:

客戶端二:

客戶端三:

資訊發布者:

現在看一下每乙個訂閱者受到的訊息:

訂閱者返回的資料說明:

redis 127.0.0.1:6379> subscribe tv

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

1) "subscribe"

2) "tv"

3) (integer) 1

命令:subscribe tv 表示訂閱了tv這個頻道。

返回的三行記錄表示:表示當前客戶端成功地訂閱了資訊第二個元素所指示的頻道。而資訊的第三個元素則記錄了目前客戶端已訂閱頻道的總數。

發布訊息後,訂閱者接收訊息

redis 127.0.0.1:6379> subscribe tv

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

1) "subscribe"

2) "tv"

3) (integer) 1

1) "message"

2) "tv"

3) "haier"

接收訊息的三行記錄的含義:表示這條資訊是由某個客戶端執行 publish 命令所傳送的, 真正的資訊。 資訊的第二個元素是資訊**的頻道, 而第三個元素則是資訊的內容。

大小: 18.1 kb

大小: 29.3 kb

大小: 24.8 kb

大小: 20.5 kb

大小: 21.3 kb

大小: 19.6 kb

大小: 101.4 kb

Redis 發布與訂閱

redis 自從2.0版本後,增加發布與訂閱等新特性,該功能有點類似設計模式中的觀察者模式,對訊息的生產者與接收者進行松耦合。也可以用該特性實現系統與系統之間的訊息傳遞,該功能的 的實現非常實用和高效。下面我們介紹一下,如何使用發布與訂閱 redis提供發布與訂閱幾個命令 subscribe cha...

redis發布與訂閱

redis在2.8.0版本之後出了乙個新功能,叫pub sub,也叫 發布與訂閱 在這篇文章中不僅要介紹它是如何用的,更重要的是要介紹它的應用場景。在之前介紹websocket之用tubesock在rails實現聊天室 五 的時候,就用redis的pub sub實現過聊天室。相關的 是這樣的 red...

Redis發布與訂閱

訂閱 發布訊息圖 第乙個 訊息傳送者,第二個 頻道 第三個 訊息訂閱者!下圖展示了頻道 channel1 以及訂閱這個頻道的三個客戶端 client2 client5 和 client1 之間的關係 當有新訊息通過 publish 命令傳送給頻道 channel1 時,這個訊息就會被傳送給訂閱它的三...