發布與訂閱這個模式在zookeeper中有詳細的闡述以及zookeeper是如何實現該功能的(參考zookeeper應用之一:資料發布與訂閱初體驗 - 池塘裡洗澡的鴨子 - (cnblogs.com)和zookeeper - 隨筆分類 - 池塘裡洗澡的鴨子 - (cnblogs.com))。redis同樣實現了該功能,下面**redis就這個功能是如何實現的。
redis提供了發布訂閱功能用於訊息的傳輸,其
發布訂閱機制包括三個部分,publisher,subscriber和channel:
發布者和訂閱者都是redis客戶端,channel則為redis伺服器端;
發布者將訊息傳送到某個的頻道,訂閱了這個頻道的訂閱者就能接收到這條訊息。
下面通過命令列模式模擬上訴過程,注意使用的命令:
1、redis客戶端1訂閱頻道1和頻道2
2、redis客戶端2將訊息發布在頻道1和頻道2上
3、redis客戶端1接收到頻道1和頻道2的訊息
退訂使用unsubscribe命令。以上以完全匹配模式,如何使用模糊匹配模式(類似正規表示式)可以使用psubscribe/punsubscribe。
總結:訂閱某個頻道或模式:
客戶端(client):
屬性為pubsub_channels,該屬性表明了該客戶端訂閱的所有頻道
屬性為pubsub_patterns,該屬性表示該客戶端訂閱的所有模式
伺服器端(redisserver):
屬性為pubsub_channels,該伺服器端中的所有頻道以及訂閱了這個頻道的客戶端
屬性為pubsub_patterns
,該伺服器端中的所有模式和訂閱了這些模式的客戶端
Redis發布與訂閱功能
發布 訂閱 功能包含兩種角色 發布者和訂閱者。redis的發布與訂閱功能由publish subscribe psubscribe等命令組成。通過執行publish命令可以發布訊息 通過執行subscribe命令,客戶端可以訂閱乙個或多個頻道 通過執行psubscribe命令,客戶端可以訂閱乙個或多...
Redis 發布訂閱功能
在redis中發布訂閱功能是由publish subscribe unsubscribe psubscribe組成的。publish是發布,subscribe是訂閱,unsubscribe是取消訂閱,psubscribe是訂閱模式,所謂模式也就是可以對應多個頻道的 頻道 例如訂閱了 abc hell...
Redis之發布與訂閱
redis的發布訂閱功能由pubish,subscribe,psubscribe命令組成。通過執行subscribe命令,客戶端可以訂閱乙個或者多個頻道,從而成為這些頻道的訂閱者 subscriber 每當有其他客戶端向被訂的頻道傳送訊息時,頻道的所有訂閱者都會收到這條訊息。除了訂閱頻道之外,客戶端...