Redis發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息。
Redis 發(fā)布訂閱(pub/sub)實(shí)現(xiàn)了消息系統(tǒng),發(fā)送者(在redis術(shù)語(yǔ)中稱為發(fā)布者)在接收者(訂閱者)接收消息時(shí)發(fā)送消息。傳送消息的鏈路稱為信道。
在Redis中,客戶端可以訂閱任意數(shù)量的信道。
以下示例說(shuō)明了發(fā)布用戶概念的工作原理。 在以下示例中,一個(gè)客戶端訂閱名為“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è)客戶端在名稱為“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ā)布訂閱相關(guān)的一些基本命令。
| 序號(hào) | 命令 | 說(shuō)明 |
|---|---|---|
| 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 …]] | 退訂給定的頻道。 |