Redis 發布訂閱用法


一、發布訂閱模型
發布訂閱其作用是為了減少依賴關系,通常也叫觀察者模式。主要是把耦合點單獨抽離出來作為第三方,隔離易變化的發送方和接收方。

發送方:只負責向第三方發送消息。(雜志社把讀者雜志交給郵局)
接收方:被動接收消息。(1:向郵局訂閱讀者雜志,2:去門口接郵過來的雜志)
第三方:存儲訂閱雜志的接收方,並在雜志過來時送給接收方。 (郵局)

二、redis中的發布訂閱
redis實現完整的發布訂閱范式,就是說任何一台redis服務器,啟動后都可以當做發布訂閱服務器。

1、普通訂閱
a、訂閱bar頻道。格式:subscribe name1 name2。
成功訂閱回復,分別對應訂閱類型、訂閱頻道、訂閱數量。

b、發布bar頻道。格式:publish channelname message。

c、訂閱bar頻道的回復,分別對應消息類型,頻道,消息。

2、模式訂閱
redis支持模式匹配訂閱,*為模糊匹配符。
訂閱所有頻道的消息:psubscribe *
訂閱以news.開頭的所有頻道:psubscribe news.*

3、取消訂閱
取消普通訂閱和取消模式訂閱的命令。

unsubscribe bar
punsubscribe ba*
取消在官方提供的連接工具中無法模擬的。

4、查看訂閱信息
命令:pubsub channels [pattern],查看訂閱消息是redis在2.8中新增加的命令之一。

4.1、返回當前服務器被訂閱的所有頻道。
127.0.0.1:6379> pubsub channels
1) "bar"

4.2、指定匹配參數,返回與模式匹配的所有頻道。
127.0.0.1:6379> pubsub channels ba*
1) "bar"

4.3、接受任意多個頻道作為輸入參數,返回這些頻道的訂閱者數量。
127.0.0.1:6379> pubsub numsub bar bar2
1) "bar"
2) (integer) 1
3) "bar2"
4) (integer) 0


免責聲明!

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



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