發布與訂閱

2021-07-12 04:28:33 字數 1806 閱讀 2430

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訂閱自己感興趣的訊息型...