發布訂閱模式中發布訊息的為publisher即發布者,接收訊息的為subscriber即訂閱者。在redis中,所有的訊息通過channel即頻道進行發布,乙個發布者可以向多個channel發布訊息,乙個訂閱者也可以訂閱多個channel。redis不對訊息進行持久化,如果訊息發布時訂閱者還沒有進行訂閱,則不會再收到此訊息。
命令格式
說明publish
publish channel message
發布message到指定的channel
subscribe
subscribe channel [channel ...]
訂閱1個或多個指定的channel
unsubscribe
unsubscribe [channel [channel ...]]
取消訂閱1個或多個指定的channel,如果不指定channel退訂所有通過subscribe訂閱的channel
psubscribe
psubscribe pattern [pattern ...]
根據匹配模式訂閱channel
punsubscribe
punsubscribe [pattern [pattern ...]]
根據匹配模式取消訂閱channel,如果不指定匹配模式退訂所有通過psubscribe訂閱的channel
subscribe不能重複訂閱同乙個channel,而psubscribe按照匹配模式訂閱時有可能會多次訂閱同乙個channel。如果psubscribe多次訂閱了同乙個channel,發布者使用publish發布訊息到此channel後,訂閱者會多次收到此訊息。
unsubscribe只能退訂subscribe訂閱的channel,punsubscribe只能退訂psubscribe訂閱的channel。
1、訂閱指定channel
192.168.1.100:6379> subscribe testchan2、訂閱指定匹配模式的channelreading messages... (press ctrl-c to quit)
1) "subscribe" #訂閱成功
2) "testchan" #訂閱的channel名稱
3) (integer) 1 #已訂閱的channel個數
1) "message" #收到訊息
2) "testchan" #****channel
3) "hello" #訊息內容
192.168.1.100:6379> publish testchan hello
(integer) 1 #收到訊息的訂閱者的數量
192.168.1.100:6379> psubscribe test*reading messages... (press ctrl-c to quit)
1) "psubscribe" #訂閱成功
2) "test*" #訂閱的channel匹配模式
3) (integer) 1 #已訂閱的channel匹配模式個數
1) "pmessage" #收到訊息
2) "test*" #匹配的訂閱模式
3) "testchan" #****channel
4) "hello" #訊息內容
192.168.1.100:6379> publish testchan hello
(integer) 1 #收到訊息的訂閱者的數量
Redis的發布訂閱的使用方法
一 相關命令概覽 1.subscribe 訂閱訊息 2.psubscribe 利用模式匹配訂閱訊息 3.publish 發布訊息 4.unsubscribe 取消普通訂閱 5.punsubscribe 取消模式匹配的訂閱 6.pubsub 自省命令 二 發布訂閱的作用 發布者無需將訊息傳送給特定的訂...
Redis發布訂閱方法
進入redis中 docker run it redis latest redis cli h 192.168.28.56 本機的ip位址 以下例項演示了發布訂閱是如何工作的。在我們例項中我們建立了訂閱頻道名為redischat redis 127.0.0.1 6379 subscribe redi...
Redis 發布訂閱
redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖展示了頻道 channel1 以及訂閱這個頻道的三個客戶端 client2 client5 和 client1 之間的關係 當有新訊息通過 pu...