Redis 發布和訂閱

2022-02-26 17:11:53 字數 1605 閱讀 4732

發布與訂閱(又稱pub/sub),訂閱者(listener)負責訂閱頻道(channel),傳送者(publisher)負責向頻道傳送二進位制字串訊息(binary string message).每當有訊息被傳送給指定頻道的時候,頻道都所有訂閱者都會收到訊息。

redis提供都5個發布訂閱命令:

命令描述

redis psubscribe 命令

訂閱乙個或多個符合給定模式的頻道。

redis pubsub 命令

檢視訂閱與發布系統狀態。

redis publish 命令

將資訊傳送到指定的頻道。

redis punsubscribe 命令

退訂所有給定模式的頻道。

redis subscribe 命令

訂閱給定的乙個或多個頻道的資訊。

redis unsubscribe 命令

指退訂給定的頻道。

使用例項:

首先需要乙個訂閱者(listener)這裡建立乙個名為subscriber的類:

public

class subscriber extends

jedispubsub

public

void onsubscribe(string channel, int

subscribedchannels)

public

void onunsubscribe(string channel, int

subscribedchannels)

}

這個類繼承自jedispubsub,其中onmessage負責接收訂閱頻道訊息後,業務處理邏輯,onsubscribe負責初始化訂閱時候的處理,onunsubscribe取消訂閱時候的處理。

public

class subthread extends

thread

@override

public

void

run()

catch

(exception e)

finally}}

}

再然後就是發布者:

public

class

publisher

public

void

start()

catch

(exception e)}}

}

再然後就是主函式的呼叫:

public

class

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 當有新訊息通過 ...