使用 redis 釋出訂閱

Redis 已釋出/訂閱傳送訊息。這是通過訂閱頻道和釋出到頻道來處理的。是的,訂閱者將訂閱一個或多個頻道。釋出者無需知道誰是所有訂閱者。相反,釋出者將釋出到特定頻道。訂閱該頻道的所有訂閱者都將收到該訊息。釋出者和訂閱者的這種分離可以實現更大的可擴充套件性和更動態的網路拓撲。

示例: 使用者訂閱了 2 個頻道,例如 foo&boo

SUBSCRIBE foo boo

在 redis-client1 的控制檯中:

127.0.0.1:6379> SUBSCRIBE foo boo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "boo"
3) (integer) 2

它將開始收聽訊息。釋出時將獲取相應頻道的資料。

例如: 當想要向與 boo 連線的所有訂戶傳送訊息時,需要釋出到該頻道。

PUBLISH boo "Hello Boo"

在 redis-client1 的控制檯中:

1) "message"
2) "boo" //channel name
3) "Hello Boo" //Actual data

要在任何時候取消訂閱頻道,請使用

UNSUBSCRIBE // to unsubscribe from all channels
UNSUBSCRIBE foo // to unsubscribe from specific channel

也可以根據模式訂閱。當通道名稱不確定/想要根據模式使用 PSUBSCRIBE 進行訂閱時。

與基於模式的取消訂閱類似,使用 PUNSUBSCRIBE