Redis發布訂閱使用方法


Redis發布訂閱

發布訂閱模式中發布消息的為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 #收到消息的訂閱者的數量  

  

原文地址:http://caiguoqing.org/post/110


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM