Redis 訊息訂閱發布演示講解

2021-10-19 12:17:33 字數 947 閱讀 4347

作用: 發布訂閱類似於資訊管道,用來進行系統之間訊息解耦,類似於mq,rabbitmq、rocketmq、kafka、activemq主要有訊息發布者和訊息訂閱者。比如運用於:訂單支付成功,會員系統加積分、錢包進行扣錢操作、發貨系統(下發商品)

訊息發布者通過管道channel將訊息分發到1、2、3訂閱者上

問題:為什麼不直接將訊息發布到訂閱上呢? 其實就是解耦

只需要關心發布有沒有將訊息發不過去 訂閱有沒有去訂閱

redis發布訊息實操

publish:發布訊息

首次發布顯示有0個訂閱在監聽

publish:訂閱訊息

開啟多個終端 客戶端連線redis 訂閱channela 此時有兩個訂閱者

此時發布者再發布test1的訊息 結果顯示訂閱者會迅速接收到訊息 並顯示兩個監聽者

unsubscribe:取消訂閱指定的頻道,如果不指定,則取消訂閱所有的評到

redis的訊息訂閱發布和mq對比

redis發布訂閱功能比較薄弱,但比較輕量級。

mq會對訊息進行持久化,redis也會持久化,但不排除資料丟失的情況(rdb、aof)

化,redis也會持久化,但不排除資料丟失的情況(rdb、aof)

redis沒有後台功能 mq有msgid 、msgkey去查詢訊息 但如果一般使用是沒有什麼問題的

Redis訊息發布與訂閱

1.publish channel message 定義乙個channel並在其上發布訊息,例如 這裡定義了news,並在news上發布了hello訊息,返回值是1,說明有乙個訂閱者收到了發布的訊息,如果有多個訂閱者,會將顯示所有訂閱者的數量。2.subscribe channel 訂閱乙個chan...

redis之訊息訂閱發布

傳送訊息到指定的channel通道 subscribe 訂閱乙個或者多個通道 unsubscribe 取消訂閱指定的通道 psubscribe 訂閱乙個或多個符合給定模式的通道 punsubscribe 取消訂閱乙個或多個符合給定模式的通道 pubsub 檢視訂閱發布的狀態 下面通過一些簡答的示例說...

Redis 訊息發布與訂閱

使用方法 127.0.0.1 6379 publish news this is a test integer 0 127.0.0.1 6379 新開乙個redis cli 訂閱端 127.0.0.1 6379 subscribe news reading messages.press ctrl c...