Redis發布訂閱使用方法

2022-01-10 05:12:20 字數 1761 閱讀 7920

發布訂閱模式中發布訊息的為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 testchan  

reading 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 #收到訊息的訂閱者的數量

2、訂閱指定匹配模式的channel

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...