redis發布訂閱

2022-07-31 18:21:12 字數 2354 閱讀 9640

發布者/訂閱者/頻道

發布者發布了訊息,所有的訂閱者都可以收到,就是生產者消費者模型(後訂閱了,無法獲取歷史訊息)

訂閱者可以訂閱任意數量的頻道

publish channel message #發布命令

publish souhu:tv "hello world" #在souhu:tv頻道發布一條hello world 返回訂閱者個數

subscribe [channel] #訂閱命令,可以訂閱乙個或多個

subscribe souhu:tv #訂閱sohu:tv頻道

unsubscribe [channel] #取消訂閱指定的頻道, 如果不指定頻道,則會取消訂閱所有頻道

unsubscribe sohu:tv #取消訂閱sohu:tv頻道

psubscribe pattern[pattern...] #訂閱模式匹配

訂閱乙個或多個符合給定模式的頻道,每個模式以 * 作為匹配符,比如 it* 匹配所 有以 it 開頭的頻道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配所有 以 news. 開頭的頻道( news.it 、 news.global.today 等等),諸如此類

psubscribe c* #訂閱以c開頭的頻道

punsubscribe [pattern [pattern ...]]

退訂指定的規則, 如果沒有引數則會退訂所有規則

unpsubscribe [pattern...] #按模式退訂指定頻道

pubsub subcommand [argument [argument ...]] #檢視訂閱與發布系統狀態

pubsub channels #列出至少有乙個訂閱者的頻道,列出活躍的頻道

pubsub numsub [channel...] #列出給定頻道的訂閱者數量

pubsub numpat #列出被訂閱模式的數量

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

啟動發布者向頻道 msg傳送訊息

視窗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,發布者訊息

[root@web02 ~]# redis-cli

127.0.0.1:6379> publish wangbaoqiang "jintian zhennanshou "

(integer) 2

# 假設客戶端同時訂閱了某種模式和符合該模式的某個頻道,那麼傳送給這個頻道的訊息將被客戶端接收到兩次,只不過這兩條訊息的型別不同,乙個是message型別,乙個是pmessage型別,但其內容相同。

訂閱所有china為字首的channel

Redis 發布訂閱

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖展示了頻道 channel1 以及訂閱這個頻道的三個客戶端 client2 client5 和 client1 之間的關係 當有新訊息通過 pu...

Redis 發布訂閱

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 publish 傳送訊息,訂閱者 subscribe 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖是 頻道 channel1 以及訂閱這個頻道的三個客戶端 client1 client2和 client3 當有新訊息通過 ...

Redis發布訂閱

概述 redis發布訂閱 pub sub 是種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 訂閱訊息。redis客戶端可以訂閱任意數量的頻道。下圖展示了頻道channel以及訂閱它的三個客戶端 client2 client5和client1之間的關係 當有新的訊息publish到chann...