Redis 釋出訂閱
Redis 釋出/訂閱是一種消息傳模式,其中發送者(在Redis術語中稱為釋出者)發送消息,而接收者(訂閱者)接收消息。傳遞消息的通道稱為channel。
在Redis中,用戶端可以訂閱任意數量的頻道。
下圖展示了頻道 channel1 , 以及訂閱這個頻道的三個用戶端 —— client2 、 client5 和 client1 之間的關系:
當有新消息通過 PUBLISH 指令發送給頻道 channel1 時, 這個消息就會被發送給訂閱它的三個用戶端:執行個體
以下執行個體示範了釋出訂閱是如何工作的,需要開啟兩個 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 | 指退訂給定的頻道。 |