1、發佈訂閱模型
發佈訂閱其做用是爲了減小依賴關係,一般也叫觀察者模式。主要是把耦合點單獨抽離出來做爲第三方,隔離易變化的發送方和接收方。redis
發送方:只負責向第三方發送消息。(雜誌社把讀者雜誌交給郵局)
接收方:被動接收消息。(1:向郵局訂閱讀者雜誌,2:去門口接郵過來的雜誌)
第三方:存儲訂閱雜誌的接收方,並在雜誌過來時送給接收方。 (郵局)服務器
2、redis中的發佈訂閱
redis實現完整的發佈訂閱範式,就是說任何一臺redis服務器,啓動後均可以當作發佈訂閱服務器。工具
一、普通訂閱
a、訂閱bar頻道。格式:subscribe name1 name2。
成功訂閱回覆,分別對應訂閱類型、訂閱頻道、訂閱數量。post
b、發佈bar頻道。格式:publish channelname message。spa
c、訂閱bar頻道的回覆,分別對應消息類型,頻道,消息。blog
二、模式訂閱
redis支持模式匹配訂閱,*爲模糊匹配符。
訂閱全部頻道的消息:psubscribe *
訂閱以news.開頭的全部頻道:psubscribe news.*channel
三、取消訂閱
取消普通訂閱和取消模式訂閱的命令。im
unsubscribe bar
punsubscribe ba*
取消在官方提供的鏈接工具中沒法模擬的。img
四、查看訂閱信息
命令:pubsub channels [pattern],查看訂閱消息是redis在2.8中新增長的命令之一。di
4.一、返回當前服務器被訂閱的全部頻道。
127.0.0.1:6379> pubsub channels
1) "bar"
4.二、指定匹配參數,返回與模式匹配的全部頻道。
127.0.0.1:6379> pubsub channels ba*
1) "bar"
4.三、接受任意多個頻道做爲輸入參數,返回這些頻道的訂閱者數量。127.0.0.1:6379> pubsub numsub bar bar21) "bar"2) (integer) 13) "bar2"4) (integer) 0