久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

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

      Redis學習筆記之發(fā)布訂閱

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

      Redis學習筆記之發(fā)布訂閱

      推薦學習:Redis視頻教程

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

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

      訂閱/發(fā)布消息圖:

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

      Redis學習筆記之發(fā)布訂閱

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

      Redis學習筆記之發(fā)布訂閱

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

      Redis學習筆記之發(fā)布訂閱

      命令 描述
      Publish channel message 命令 將信息發(fā)送到指定的頻道。
      SUBSCRIBE channel [channel …] 訂閱給定的一個或多個頻道的信息。
      UNSUBSCRIBE channel [channel …] 指退訂給定的頻道。
      [PUNSUBSCRIBE pattern [pattern …]] 退訂所有給定模式的頻道。
      [PUBSUB argument [argument …] 查看訂閱與發(fā)布系統狀態(tài)。
      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"

      發(fā)送端:

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

      原理:

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

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

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

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

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


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

      推薦學習:Redis視頻教程

      贊(0)
      分享到: 更多 (0)
      網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號