這篇文章主要介紹了redis發(fā)布訂閱實例分析的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Redis發(fā)布訂閱實例分析文章都會有所收獲,下面我們一起來看看吧。
成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、甘州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為甘州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息。
Redis 客戶端可以訂閱任意數(shù)量的頻道。
訂閱/發(fā)布消息圖:
第一個對象:消息發(fā)送者。第二個對象:頻道。第三個對象:消息訂閱者。
下圖展示了頻道 channel1 , 以及訂閱這個頻道的三個客戶端 —— client2 、 client5 和 client1 之間的關(guān)系:
當(dāng)有新消息通過 PUBLISH 命令發(fā)送給頻道 channel1 時, 這個消息就會被發(fā)送給訂閱它的三個客戶端:
命令 | 描述 |
---|---|
Publish channel message 命令 | 將信息發(fā)送到指定的頻道。 |
SUBSCRIBE channel [channel …] | 訂閱給定的一個或多個頻道的信息。 |
UNSUBSCRIBE channel [channel …] | 指退訂給定的頻道。 |
[PUNSUBSCRIBE pattern [pattern …]] | 退訂所有給定模式的頻道。 |
[PUBSUB argument [argument …] | 查看訂閱與發(fā)布系統(tǒng)狀態(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" # 消息內(nèi)容 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實現(xiàn)的,通過分析Redis源碼里的pubsub.c文件,了解發(fā)布和訂閱機制的底層實現(xiàn),籍此加深對 Redis的理解。
Redis通過PUBLISH、SUBSCRIBE 和PSUBSCRIBE等命令實現(xiàn)發(fā)布和訂閱功能。
通過SUBSCRIBE命令訂閱某頻道后,redis-server里維護(hù)了一個字典,字典的鍵就是一個個channel(頻道),而字典的值則是一個鏈表,鏈表中保存了所有訂閱這個channel的客戶端。SUBSCRIBE 命令的關(guān)鍵,就是將客戶端添加到給定 channel的訂閱鏈表中。
通過PUBLISH命令向訂閱者發(fā)送消息,redis-server會使用給定的頻道作為鍵,在它所維護(hù)的channel字典中查找記錄了訂閱這個頻道的所有客戶端的鏈表,遍歷這個鏈表,將消息發(fā)布給所有訂閱者。
Pub/Sub 從字面上理解就是發(fā)布 ( Publish )與訂閱(Subscribe ),在Redis中,你可以設(shè)定對某個key值進(jìn)行消息發(fā)布及消息訂閱,當(dāng)一個key值上進(jìn)行了消息發(fā)布后,所有訂閱它的客戶端都會收到相應(yīng)的消息。這一功能最明顯的用法就是用作實時消息系統(tǒng),比如普通的即時聊天,群聊等功能。
關(guān)于“Redis發(fā)布訂閱實例分析”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Redis發(fā)布訂閱實例分析”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:Redis發(fā)布訂閱實例分析
文章路徑:http://chinadenli.net/article12/joegdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、定制網(wǎng)站、手機網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、軟件開發(fā)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)