消息傳遞:發布訂閱模式詳解


  1. Redis發布訂閱簡介

(1) 定義:Redis發布訂閱(pub/sub)是一種消息通訊模式:發送者發送消息,訂閱者接受信息

(2) 具體操作:RedisSUBSCRIBE命令可以讓客戶端訂閱任意數量的頻道,每當有新信息發送到被訂閱的頻道時,信息就會被發送給所有訂閱指定頻道的客戶端

(3) 實例

下圖展示了頻道channel1,以及訂閱該頻道的客戶端----client2client5client1之間的關系

 

 

 

當有新消息通過PUBLISH發送給頻道channel1時,這個消息就會被發送給訂閱它的三個客戶端:

 

 

 

  1. 發布/訂閱使用

(1) 發布訂閱模式

① 基於頻道(channel)的發布/訂閱

1) 發布/訂閱模式包含兩種角色,分別是發布者和訂閱者。發布者可以向指定的頻道發送消息;訂閱者可以訂閱一個或者多個頻道,所有訂閱此頻道的訂閱者都會收到此消息

2) 圖示

 

 

 

② 基於模式(pattern)的發布/訂閱

  1. 基於頻道(channel)的發布/訂閱是如何實現的?

(1) 底層是通過字典(圖中的publish_channel)實現的,這個字典就用於保存訂閱頻道的信息:字典的鍵為正在被訂閱的頻道,而字典的值則是一個鏈表,鏈表中保存了所有訂閱這個頻道的客戶端。

(2) 數據結構

① 實例:在下圖展示的這個pubsub_channels的示例中,client2client5client1就訂閱了channel1,而其他頻道也被別的客戶端所訂閱

② 圖示

 

 

 

(3) 訂閱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM