Redis 發(fā)布訂閱
Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息腾窝,訂閱者(sub)接收消息。
Redis 客戶端可以訂閱任意數(shù)量的頻道。
下圖展示了頻道 channel1 误债, 以及訂閱這個(gè)頻道的三個(gè)客戶端 —— client2 票编、 client5 和 client1 之間的關(guān)系:
當(dāng)有新消息通過 PUBLISH 命令發(fā)送給頻道 channel1 時(shí), 這個(gè)消息就會(huì)被發(fā)送給訂閱它的三個(gè)客戶端:
實(shí)例
以下實(shí)例演示了發(fā)布訂閱是如何工作的蟀架。在我們實(shí)例中我們創(chuàng)建了訂閱頻道名為 redisChat:
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
現(xiàn)在瓣赂,我們先重新開啟個(gè) redis 客戶端,然后在同一個(gè)頻道 redisChat 發(fā)布兩次消息片拍,訂閱者就能接收到消息煌集。
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by runoob.com"
(integer) 1
# 訂閱者的客戶端會(huì)顯示如下消息
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by runoob.com"
Redis 發(fā)布訂閱命令
下表列出了 redis 發(fā)布訂閱常用命令:
序號(hào) | 命令及描述 |
---|---|
1 | [PSUBSCRIBE pattern pattern ...] 訂閱一個(gè)或多個(gè)符合給定模式的頻道。 |
2 | [PUBSUB subcommand argument [argument ...]] 查看訂閱與發(fā)布系統(tǒng)狀態(tài)捌省。 |
3 | PUBLISH channel message 將信息發(fā)送到指定的頻道苫纤。 |
4 | [PUNSUBSCRIBE pattern [pattern ...]] 退訂所有給定模式的頻道。 |
5 | [SUBSCRIBE channel channel ...] 訂閱給定的一個(gè)或多個(gè)頻道的信息纲缓。 |
6 | [UNSUBSCRIBE channel [channel ...]] 指退訂給定的頻道卷拘。 |