redis 发布订阅实际案例_【赵强老师】Redis的消息发布与订阅
生活随笔
收集整理的這篇文章主要介紹了
redis 发布订阅实际案例_【赵强老师】Redis的消息发布与订阅
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
歡迎關注趙強老師微信公眾號:myitshare
Redis 作為一個publish/subscribe server,起到了消息路由的功能。訂閱者可以通過subscribe和psubscribe命令向Redis server訂閱自己感興趣的消息類型,當發布者通過publish命令向Redis server發送特定類型的消息時。訂閱該消息類型的全部client都會收到此消息。這里消息的傳遞是多對多的。一個client可以訂閱多個channel,也可以向多個channel發送消息。
下圖為大家展示了Redis消息機制的體系架構。
發布者和訂閱者都是Redis客戶端,Channel則為Redis服務器端,發布者將消息發送到某個的頻道,訂閱了這個頻道的訂閱者就能接收到這條消息。Redis的這種發布訂閱機制與基于主題的發布訂閱類似,Channel相當于主題。
下面列出來了Redis發布消息、訂閱消息的相關命令。
publish: 發送消息:Redis采用PUBLISH命令發送消息,其返回值為接收到該消息的訂閱者的數量。 subscribe: 訂閱某個頻道:Redis采用SUBSCRIBE命令訂閱某個頻道,其返回值包括客戶端訂閱的頻道,目前已訂閱的頻道數量,以及接收到的消息,其中subscribe表示已經成功訂閱了某個頻道。 psubscribe: 模式匹配:模式匹配功能允許客戶端訂閱符合某個模式的頻道,Redis采用PSUBSCRIBE訂閱符合某個模式所有頻道,用“”表示模式,“”可以被任意值代替。案例一:一個消息生產者,兩個消息消費者
案例二:兩個消息生產者,一個消息消費者
案例三:Redis消息機制的Java API
- 添加依賴:
- 消息監聽器類
測試程序:
package demo.redis;import redis.clients.jedis.Jedis;public class TestMain {@Testpublic void testSubscribe() throws Exception{Jedis jedis = new Jedis("localhost");RedisMsgPubSubListener listener = new RedisMsgPubSubListener();jedis.subscribe(listener, "redisChatTest");//other code}@Testpublic void testPublish() throws Exception{Jedis jedis = new Jedis("localhost");jedis.publish("redisChatTest", "Hello World");Thread.sleep(5000);jedis.publish("redisChatTest", "Hello Redis");} }歡迎關注趙強老師微信公眾號:myitshare
總結
以上是生活随笔為你收集整理的redis 发布订阅实际案例_【赵强老师】Redis的消息发布与订阅的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商誉占比高说明什么?
- 下一篇: 支付宝两年前的转账记录怎么查?