Redis發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息。
Redis 發(fā)布訂閱(pub/sub)實現(xiàn)了消息系統(tǒng),發(fā)送者(在redis術語中稱為發(fā)布者)在接收者(訂閱者)接收消息時發(fā)送消息。傳送消息的鏈路稱為信道。
在Redis中,客戶端可以訂閱任意數(shù)量的信道。
以下示例說明了發(fā)布用戶概念的工作原理。 在以下示例中,一個客戶端訂閱名為“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)在,兩個客戶端在名稱為“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 yiibai"
(integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by yiibai"
下表列出了與Redis發(fā)布訂閱相關的一些基本命令。
序號 | 命令 | 說明 |
---|---|---|
1 | PSUBSCRIBE pattern [pattern …] | 訂閱一個或多個符合給定模式的頻道。 |
2 | PUBSUB subcommand [argument [argument …]] | 查看訂閱與發(fā)布系統(tǒng)狀態(tài)。 |
3 | PUBLISH channel message | 將信息發(fā)送到指定的頻道。 |
4 | PUNSUBSCRIBE [pattern [pattern …]] | 退訂所有給定模式的頻道。 |
5 | SUBSCRIBE channel [channel …] | 訂閱給定的一個或多個頻道的信息。 |
6 | UNSUBSCRIBE [channel [channel …]] | 退訂給定的頻道。 |