站長資訊網
        最全最豐富的資訊網站

        Redis學習筆記之發布訂閱

        本篇文章給大家帶來了關于Redis的相關知識,其中主要介紹了關于發布訂閱的相關問題,Redis 發布訂閱(pub/sub)是一種消息通信模式:發送者(pub)發送消息,訂閱者(sub)接收消息,下面一起來看一下,希望對大家有幫助。

        Redis學習筆記之發布訂閱

        推薦學習:Redis視頻教程

        Redis 發布訂閱(pub/sub)是一種消息通信模式:發送者(pub)發送消息,訂閱者(sub)接收消息。

        Redis 客戶端可以訂閱任意數量的頻道。

        訂閱/發布消息圖:

        第一個對象:消息發送者。第二個對象:頻道。第三個對象:消息訂閱者。

        Redis學習筆記之發布訂閱

        下圖展示了頻道 channel1 , 以及訂閱這個頻道的三個客戶端 —— client2 、 client5 和 client1 之間的關系:

        Redis學習筆記之發布訂閱

        當有新消息通過 PUBLISH 命令發送給頻道 channel1 時, 這個消息就會被發送給訂閱它的三個客戶端:

        Redis學習筆記之發布訂閱

        命令 描述
        Publish channel message 命令 將信息發送到指定的頻道。
        SUBSCRIBE channel [channel …] 訂閱給定的一個或多個頻道的信息。
        UNSUBSCRIBE channel [channel …] 指退訂給定的頻道。
        [PUNSUBSCRIBE pattern [pattern …]] 退訂所有給定模式的頻道。
        [PUBSUB argument [argument …] 查看訂閱與發布系統狀態。
        PSUBSCRIBE pattern [pattern …] 訂閱一個或多個符合給定模式的頻道。

        測試

        訂閱端:

        127.0.0.1:6379> subscribe mianbao 			# 訂閱頻道 mianbao Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "mianbao" 3) (integer) 1 # 等待讀取推送的消息 1) "message"		# 消息 2) "mianbao"		# 頻道 3) "hello"			# 消息內容 1) "message" 2) "mianbao" 3) "hello redis"

        發送端:

        127.0.0.1:6379> publish mianbao "hello"			# 發送消息到頻道		 (integer) 1 127.0.0.1:6379> publish mianbao "hello redis" (integer) 1

        原理:

        Redis是使用C實現的,通過分析Redis源碼里的pubsub.c文件,了解發布和訂閱機制的底層實現,籍此加深對 Redis的理解。

        Redis通過PUBLISH、SUBSCRIBE 和PSUBSCRIBE等命令實現發布和訂閱功能。

        通過SUBSCRIBE命令訂閱某頻道后,redis-server里維護了一個字典,字典的鍵就是一個個channel(頻道),而字典的值則是一個鏈表,鏈表中保存了所有訂閱這個channel的客戶端。SUBSCRIBE 命令的關鍵,就是將客戶端添加到給定 channel的訂閱鏈表中。

        通過PUBLISH命令向訂閱者發送消息,redis-server會使用給定的頻道作為鍵,在它所維護的channel字典中查找記錄了訂閱這個頻道的所有客戶端的鏈表,遍歷這個鏈表,將消息發布給所有訂閱者。

        Pub/Sub 從字面上理解就是發布 ( Publish )與訂閱(Subscribe ),在Redis中,你可以設定對某個key值進行消息發布及消息訂閱,當一個key值上進行了消息發布后,所有訂閱它的客戶端都會收到相應的消息。這一功能最明顯的用法就是用作實時消息系統,比如普通的即時聊天,群聊等功能。


        稍微復雜的場景我們會使用消息中間件:RabbitMQ、RocketMQ、ActiveMQ、kafka

        推薦學習:Redis視頻教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产成人无码精品一区在线观看| 国产精品成人精品久久久| 青草青草久热精品视频在线网站| 亚洲精品永久在线观看| 99久久免费国产精品| 国产精品99久久免费观看| 午夜亚洲av永久无码精品| 国内精品久久久久久久久| 欧美日韩精品乱国产538| 国产在线精品一区二区中文| 亚洲日韩精品一区二区三区| 久久综合精品国产一区二区三区| 91精品国产自产在线观看| 国产91精品在线观看| 久久成人国产精品| 最新在线精品国自av| 免费人妻精品一区二区三区| 国产精品一级毛片无码视频| 久久亚洲国产午夜精品理论片| 国产成人精品免费视频大| 久久精品夜夜夜夜夜久久| 日韩精品久久久久久免费| 最新国产成人精品2024| 四虎国产精品永久在线看| 久久久久亚洲精品无码网址| 精品乱子伦一区二区三区高清免费播放| 91不卡在线精品国产| 亚洲国产精品一区二区久久| 久久精品国产一区| 久久精品一区二区三区不卡| 国产在线不卡午夜精品2021| 国产精品一二三区| 国产精品视频分类一区| 国内精品在线视频| 久久99久久99小草精品免视看| 精品国产综合成人亚洲区 | 国产精品无码v在线观看| Xx性欧美肥妇精品久久久久久 | 夜色www国产精品资源站| 成人精品一区二区三区免费看| 99久久精品国产一区二区|