天天看點

Redis釋出訂閱

Redis 釋出訂閱

Redis 釋出/訂閱是一種消息傳模式,其中發送者(在Redis術語中稱為釋出者)發送消息,而接收者(訂閱者)接收消息。傳遞消息的通道稱為channel。

在Redis中,用戶端可以訂閱任意數量的頻道。

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

Redis釋出訂閱
當有新消息通過 PUBLISH 指令發送給頻道 channel1 時, 這個消息就會被發送給訂閱它的三個用戶端:
Redis釋出訂閱

執行個體

以下執行個體示範了釋出訂閱是如何工作的,需要開啟兩個 redis-cli 用戶端。

第一個 redis-cli 用戶端

redis 127.0.0.1:6379> SUBSCRIBE rediscomcnChat

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
           

第二個 redis-cli 用戶端

redis 127.0.0.1:6379> PUBLISH rediscomcnChat "Redis PUBLISH test"
(integer) 1

redis 127.0.0.1:6379> PUBLISH rediscomcnChat "Learn redis by redis.com.cn"
(integer) 1

# 訂閱者的用戶端會顯示如下消息
1) "message"
2) "rediscomcnChat"
3) "Redis PUBLISH test"
1) "message"
2) "rediscomcnChat"
3) "Learn redis by redis.com.cn"
           

Redis 釋出訂閱指令

指令 描述
PSUBSCRIBE 訂閱一個或多個符合給定模式的頻道。
PUBSUB 檢視訂閱與釋出系統狀态。
PUBLISH 将資訊發送到指定的頻道。
PUNSUBSCRIBE 退訂所有給定模式的頻道。
SUBSCRIBE 訂閱給定的一個或多個頻道的資訊。
UNSUBSCRIBE 指退訂給定的頻道。

繼續閱讀