redis的發布與訂閱功能由publish、subscribe、psubscribe命令組成。
(1)subscribe命令:客戶端可以訂閱乙個或多個頻道,從而成為這些頻道的訂閱者(subscriber):每當有其他客戶端向被訂閱的頻道傳送訊息(message)時,頻道的所有訂閱者都會收到這條訊息。
127.0
.0.1:6379
> subscribe "news.it"
reading messages... (press ctrl-c
to quit)
1) "subscribe"
2) "news.it"
3) (integer) 1
/*當有其他客戶端向被訂閱的頻道傳送訊息(message)時,頻道的所有訂閱者都會收到這條訊息*/
(2)unsubscribe命令:退訂某個或某些頻道,伺服器將從pubsub_channels中解除客戶端與被退訂頻道之間的關聯。
unsubscribe "news.it"
"news.movie"
unsubscribe命令的偽**:
def unsubscribe(*all_input_channels)
//遍歷要退訂的所有頻道
for channel in all_input_channels:
//在訂閱者鍊錶中刪除退訂的客戶端
server.pubsub_channels[channel].remove(client)
/*如果頻道已經沒有任何訂閱者了(訂閱者鍊錶為空)
那麼將頻道從字典中刪除*/
if len(server.pubsub_channels[channel])==0:
server.pubsub_channels.remove(channel)
訂閱模式的結構:redis.h/pubsubpattern,方法實現在pubsub.c中。
/*
* 記錄訂閱模式的結構
訂閱的模式在redisserver中:
(1) 訂閱模式命令psubscribe:訂閱某個或某些模式。
psubscribe "news.*"
(2) 退訂模式命令punsubscribe:退訂某個或某些模式。
punsubscribe "news.*"
publish命令:
mysql訊息訂閱與發布 發布 訂閱配置
public ibus bus public void handle mymessage message bus.publish e e.someproperty xyz 公共汽車 屬性將自動由基礎設施。這就是所謂的 依賴注入 所有開發完成了nservicebus利用這些模式。技術作為nservic...
Redis 發布與訂閱
redis 自從2.0版本後,增加發布與訂閱等新特性,該功能有點類似設計模式中的觀察者模式,對訊息的生產者與接收者進行松耦合。也可以用該特性實現系統與系統之間的訊息傳遞,該功能的 的實現非常實用和高效。下面我們介紹一下,如何使用發布與訂閱 redis提供發布與訂閱幾個命令 subscribe cha...
發布與訂閱資訊
發布訂閱 pub sub 是一種訊息通訊模式,主要的目的是 解除 訊息發布者和訊息訂閱者之間的 耦合,redis作為乙個pub sub的server,在訂閱者和發布者之間起到了訊息路由的功能,訂閱者可以通過 subscribe和psubscribe命令向redis server訂閱自己感興趣的訊息型...