Redis 發布和訂閱

2022-07-13 03:00:13 字數 2446 閱讀 4407

一、概述

1). 發布和訂閱是一種訊息通訊模式。

2). 優點:使訊息訂閱者和訊息發布者耦合度降低,類似設計模式中的觀察者模式。

二、發布和訂閱

訂閱命令:

//

訂閱乙個或多個頻道

//返回值:value_1 為 「subcribe」 表示訂閱成功,value_2 為訂閱的頻道名稱,value_3 表示當前訂閱的頻道個數

subscribe channel1 channel2 channel3 ...

//模式訂閱

//返回值:value_1 為 「psubcribe」 表示訂閱成功,value_2 為訂模式訂閱的 pattern,value_3 表示當前訂閱的頻道個數

psubscribe abc* xyz* ...

發布命令:

//

發布命令

publish channel msg

啟動訂閱者 x 和訂閱者 y,分別發出訂閱命令,如下面兩張:

啟動發布者,發布如下訊息:

訂閱者 x 和訂閱者 y 都收到了訂閱訊息:

取消訂閱(取消訂閱在官方給的客戶端上是無法模擬的)

unsubscribe  cctv-1

punsubscribe cctv-*

檢視訂閱

//

檢視訂閱的所有頻道

pubsub channels;

pubsub channels msg*;

//檢視該頻道的訂閱人數

三、程式設計展示 redis 的發布和訂閱

程式設計展示:

public

class mysub extends

jedispubsub

@override

public

void

onpmessage(string pattern, string channel, string msg)

@override

public

void onpsubscribe(string channel, int

msg)

@override

public

void onpunsubscribe(string arg0, int

arg1) {}

@override

public

void onsubscribe(string channel, int

number)

@override

public

void onunsubscribe(string arg0, int

arg1) {}

}

訂閱者 a

public

class

subclient

}

訂閱者 b (模式訂閱)

public

class

psubclient

}

發布者 c

public

class

pubclient

}

依次執行客戶端 abc

a 端輸出

onsubscribe - cctv-1 - 1

onmessage - cctv-1 - hello,this is cctv-1

b 端輸出

onpsubscribe - cctv* - 1

onpmessage - cctv* - cctv-1 - hello,this is cctv-1

Redis 發布和訂閱

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

Redis 發布訂閱

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖展示了頻道 channel1 以及訂閱這個頻道的三個客戶端 client2 client5 和 client1 之間的關係 當有新訊息通過 pu...

Redis 發布訂閱

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 publish 傳送訊息,訂閱者 subscribe 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖是 頻道 channel1 以及訂閱這個頻道的三個客戶端 client1 client2和 client3 當有新訊息通過 ...