Redis 發(fā)布訂閱
Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息。
Redis 客戶端可以訂閱任意數(shù)量的頻道。
下圖展示了頻道 channel1 金砍, 以及訂閱這個(gè)頻道的三個(gè)客戶端 —— client2 趁餐、 client5 和 client1 之間的關(guān)系:
當(dāng)有新消息通過(guò) PUBLISH 命令發(fā)送給頻道 channel1 時(shí)雄嚣, 這個(gè)消息就會(huì)被發(fā)送給訂閱它的三個(gè)客戶端:
實(shí)例
以下實(shí)例演示了發(fā)布訂閱是如何工作的俐芯。在我們實(shí)例中我們創(chuàng)建了訂閱頻道名為redisChat:
現(xiàn)在棵介,我們先重新開(kāi)啟個(gè) redis 客戶端,然后在同一個(gè)頻道 redisChat 發(fā)布兩次消息吧史,訂閱者就能接收到消息邮辽。
Redis 發(fā)布訂閱命令
下表列出了 redis 發(fā)布訂閱常用命令:
1> psubscribe 命令:訂閱一個(gè)或多個(gè)符合給定模式的頻道
格式:PSUBSCRIBE pattern [pattern ...]
2> pubsub 命令:查看訂閱與發(fā)布系統(tǒng)狀態(tài)
格式:PUBSUB subcommand [argument [argument ...]]
3> publish 命令:將信息發(fā)送到指定的頻道
4> punsubscribe 命令:退訂所有給定模式的頻道
格式:PUNSUBSCRIBE [pattern [pattern ...]]
5> subscribe 命令:訂閱給定的一個(gè)或多個(gè)頻道的信息
格式:SUBSCRIBE channel [channel ...]
6> unsubscribe 命令:指退訂給定的頻道