09 Redis 訊息訂閱與發布

2022-05-17 17:58:39 字數 1310 閱讀 6220

redis 發布訂閱(pub/sub)是一種訊息通訊模式:傳送者(pub)傳送訊息,訂閱者(sub)接收訊息。

redis 客戶端可以訂閱任意數量的頻道。

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

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

subscribe channel:訂閱頻道,例:subscribe mychat,訂閱mychat這個頻道

psubscribe channel*:批量訂閱頻道,例:psubscribe s*,訂閱以」s」開頭的頻道

publish channel content:在指定的頻道中發布訊息,如 publish mychat 『today is a newday』

以下例項演示了發布訂閱是如何工作的。在我們例項中我們建立了訂閱頻道名為redischat:

redis 127.0.0.1:6379>subscribe redischat

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

1) "subscribe"

2) "redischat"

3) (integer) 1

現在,我們先重新開啟個 redis 客戶端,然後在同乙個頻道 redischat 發布兩次訊息,訂閱者就能接收到訊息。

redis 127.0.0.1:6379> publish redischat "redis is a great caching technique"(integer) 1redis 127.0.0.1:6379> publish redischat "learn redis by runoob.com"(integer) 1# 訂閱者的客戶端會顯示如下訊息

1) "message"

2) "redischat"

3) "redis is a great caching technique"

1) "message"

2) "redischat"

3) "learn redis by runoob.com"

redischat

Redis訊息發布與訂閱

1.publish channel message 定義乙個channel並在其上發布訊息,例如 這裡定義了news,並在news上發布了hello訊息,返回值是1,說明有乙個訂閱者收到了發布的訊息,如果有多個訂閱者,會將顯示所有訂閱者的數量。2.subscribe channel 訂閱乙個chan...

Redis 訊息發布與訂閱

使用方法 127.0.0.1 6379 publish news this is a test integer 0 127.0.0.1 6379 新開乙個redis cli 訂閱端 127.0.0.1 6379 subscribe news reading messages.press ctrl c...

09 Redis 列表物件

本文內容均來自 redis設計與實現 一書 列表物件的編碼可以是ziplist或者linkedlist。ziplist編碼的列表物件使用壓縮列表作為底層實現,每個壓縮列表節點儲存乙個列表元素。linkedlist編碼的列表物件使用雙端鍊錶作為底層實現,每個雙端鍊錶節點都儲存了乙個字串物件,而每個字串...