Redis Redis 發布與訂閱

2022-05-19 10:45:08 字數 1068 閱讀 9702

發布訂閱中的角色

1. 發布者(publisher)

2. 訂閱者(subscriber)

3. 頻道(channel)

訊息通訊模式

redis中發布者和訂閱者都是客戶端,而頻道是溝通它們兩之間的橋梁。  發布者將資訊發布到頻道上,訂閱者去訂閱該頻道後就能收到發布者所發布的訊息。這個就是類似於生產者與消費者模型。每個訂閱者可以訂閱多個頻道的,訂閱者只接受鎖訂閱頻道的訊息,別的頻道是不會關心,同時新的訂閱者是接受不到頻道的歷史訊息。

redis發布訂閱命令

1. publish channel message :將資訊傳送到指定的頻道, 返回訂閱者數量。

2. psubscribe pattern [pattern ...] :按照模式訂閱乙個或多個頻道,比如訂閱某個字母開頭的頻道。

3. unsubscribe [channel [channel ...]] : 退訂某個頻道。

4. subscribe channel [channel ...] :訂閱乙個或多個頻道的資訊。

5. pubsub numsub [channel ...] :列出某個頻道的訂閱者數量。

1.  發布訂閱當發布者發布訊息時候其他訂閱者都可以接收到訊息。而對於訊息佇列來說是乙個搶占的功能,一條訊息只能有乙個訂閱者得到該訊息,redis並沒有提供該功能,可以使用list中brpop和blpop實現阻塞時訊息佇列。

2. 使用場景不同,和上面1類似。

1. 如果訂閱者斷線,是不能接受到發布者所發布的訊息,容易丟失資料。

2. 訊息積壓,訂閱者如果來不及處理發布者所發布的訊息,會造成輸出緩衝區的體積變得越來越大,導致redis變慢甚至奔潰。

redis發布訂閱與activemq等訊息中介軟體的比較

參考**

Redis Redis的訊息機制 發布訂閱

目前go fly客服系統是通過記憶體來記錄客服和訪客的對映關係 不能用於分布式的環境下 只能單機使用 後續如果要支援分布式 可以考慮redis的pub sub機制 1.基於pub sub的特點,他的典型使用場景就是實時訊息系統,比如即時聊天,群聊等功能 2.還常用作減輕高併發的i o寫壓力,例如大量...

發布與訂閱

redis的發布與訂閱功能由publish subscribe psubscribe命令組成。1 subscribe命令 客戶端可以訂閱乙個或多個頻道,從而成為這些頻道的訂閱者 subscriber 每當有其他客戶端向被訂閱的頻道傳送訊息 message 時,頻道的所有訂閱者都會收到這條訊息。127...

mysql訊息訂閱與發布 發布 訂閱配置

public ibus bus public void handle mymessage message bus.publish e e.someproperty xyz 公共汽車 屬性將自動由基礎設施。這就是所謂的 依賴注入 所有開發完成了nservicebus利用這些模式。技術作為nservic...