1. 程式人生 > >redis的釋出和訂閱

redis的釋出和訂閱

釋出   PUBLISH

訂閱   SUBSCRIBE 

            

            

 釋出和訂閱的實驗

PUBLISH channel msg
    將資訊 message 傳送到指定的頻道 channel

SUBSCRIBE channel [channel ...]
    訂閱頻道,可以同時訂閱多個頻道

UNSUBSCRIBE [channel ...]
    取消訂閱指定的頻道, 如果不指定頻道,則會取消訂閱所有頻道
PSUBSCRIBE pattern [pattern ...]
    訂閱一個或多個符合給定模式的頻道,每個模式以 
* 作為匹配符,比如 it* 匹配所 有以 it 開頭的頻道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配所有 以 news. 開頭的頻道( news.it 、 news.global.today 等等),諸如此類 PUNSUBSCRIBE [pattern [pattern ...]] 退訂指定的規則, 如果沒有引數則會退訂所有規則 PUBSUB subcommand [argument [argument ...]] 檢視訂閱與釋出系統狀態 注意:使用釋出訂閱模式實現的訊息佇列,當有客戶端訂閱channel後只能收到後續釋出到該頻道的訊息,之前傳送的不會快取,必須Provider和Consumer同時線上。

 

 啟動兩個redis-cli視窗,都訂閱電臺

              

 視窗2,啟動釋出者向頻道 diantai傳送訊息

[ro[email protected] ~]# redis-cli
127.0.0.1:6379> PUBLISH diantai 'jinyewugenglaiwojia'
(integer) 2

視窗3,檢視訂閱者的訊息狀態

訂閱一個或者多個符合模式的頻道

視窗1,啟動兩個redis-cli視窗,均訂閱 wang*頻道(channel)

 

127.0.0.1:6379> PSUBSCRIBE wang*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "wang*"
3) (integer) 1


1) "pmessage"
2) "wang*"
3) "wangbaoqiang"
4) "jintian zhennanshou "

視窗2,啟動redis-cli視窗,均訂閱wang*頻道

 
127.0.0.1:6379> PSUBSCRIBE wang*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "wang*"
3) (integer) 1



1) "pmessage"
2) "wang*"
3) "wangbaoqiang"
4) "jintian zhennanshou "
 

視窗3,釋出者訊息

[[email protected] ~]# redis-cli
127.0.0.1:6379> PUBLISH wangbaoqiang "jintian zhennanshou "
(integer) 2

 總結:

三個角色,提供的redis命令
1.釋出者
publish 頻道 訊息 給頻道發訊息
2.訂閱者
SUBSCRIBE 頻道 訂閱頻道
PSUBSCRIBE 頻道* 支援模糊匹配的訂閱
3.頻道
channel 頻道名 自定義