發布與訂閱(又稱pub/sub),訂閱者(listener)負責訂閱頻道(channel),傳送者(publisher)負責向頻道傳送二進位制字串訊息(binary string message).每當有訊息被傳送給指定頻道的時候,頻道都所有訂閱者都會收到訊息。
redis提供都5個發布訂閱命令:
命令描述
redis psubscribe 命令
訂閱乙個或多個符合給定模式的頻道。
redis pubsub 命令
檢視訂閱與發布系統狀態。
redis publish 命令
將資訊傳送到指定的頻道。
redis punsubscribe 命令
退訂所有給定模式的頻道。
redis subscribe 命令
訂閱給定的乙個或多個頻道的資訊。
redis unsubscribe 命令
指退訂給定的頻道。
使用例項:
首先需要乙個訂閱者(listener)這裡建立乙個名為subscriber的類:
publicclass subscriber extends
jedispubsub
public
void onsubscribe(string channel, int
subscribedchannels)
public
void onunsubscribe(string channel, int
subscribedchannels)
}
這個類繼承自jedispubsub,其中onmessage負責接收訂閱頻道訊息後,業務處理邏輯,onsubscribe負責初始化訂閱時候的處理,onunsubscribe取消訂閱時候的處理。
publicclass subthread extends
thread
@override
public
void
run()
catch
(exception e)
finally}}
}
再然後就是發布者:
publicclass
publisher
public
void
start()
catch
(exception e)}}
}
再然後就是主函式的呼叫:
publicclass
test1
因為jedis不是執行緒安全的,jedispool是執行緒安全的,所以這裡使用jedispool。
輸出:
連線成功服務正在執行: pong
subscribe redis, channel xx, thread will be blocked
subscribe redis channel success, channel xx, subscribedchannels 1onmessage channel = xxmessage =233onmessage channel = xxmessage =233
Redis 發布和訂閱
一 概述 1 發布和訂閱是一種訊息通訊模式。2 優點 使訊息訂閱者和訊息發布者耦合度降低,類似設計模式中的觀察者模式。二 發布和訂閱 訂閱命令 訂閱乙個或多個頻道 返回值 value 1 為 subcribe 表示訂閱成功,value 2 為訂閱的頻道名稱,value 3 表示當前訂閱的頻道個數 s...
Redis 發布訂閱
redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖展示了頻道 channel1 以及訂閱這個頻道的三個客戶端 client2 client5 和 client1 之間的關係 當有新訊息通過 pu...
Redis 發布訂閱
redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 publish 傳送訊息,訂閱者 subscribe 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖是 頻道 channel1 以及訂閱這個頻道的三個客戶端 client1 client2和 client3 當有新訊息通過 ...