Redis 發佈訂閱(pub/sub)是一種消息通信模式:發送者(publish)發送消息,訂閱者(subscribe)接收消息。
Redis 客戶端可以訂閱任意數量的頻道。
下圖是:頻道 channel1 , 以及訂閱這個頻道的三個客戶端 —— client1、 client2和 client3:
當有新消息通過 publish命令發送給頻道 channel1 時, 這個消息就會被髮送給訂閱它的三個客戶端:
實例:
以下實例演示了發佈/訂閱是如何工作的。在我們的實例中我們創建了訂閱頻道redisChat:
127.0.0.1:6379> subscribe redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
然後重新開啓個 redis 客戶端,在同一個頻道 redisChat 發佈消息,看看訂閱者是否能接收到消息。
127.0.0.1:6379> publish redisChat "Redis is a great caching technique"
(integer) 1
127.0.0.1:6379> publish redisChat "Learn redis by polaris.com"
(integer) 1
最後去訂閱者的客戶端查看消息
127.0.0.1:6379> subscribe redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by polaris.com"
Redis 發佈訂閱命令
1、PSUBSCRIBE pattern [pattern ...] 訂閱一個或多個符合給定模式的頻道。
2、PUBSUB subcommand [argument [argument ...]] 查看訂閱與發佈系統狀態。
3、PUBLISH channel message 將信息發送到指定的頻道。
4、PUNSUBSCRIBE [pattern [pattern ...]] 退訂所有給定模式的頻道。
5、SUBSCRIBE channel [channel ...] 訂閱給定的一個或多個頻道的信息。
6、UNSUBSCRIBE [channel [channel ...]] 指退訂給定的頻道。