我的新作品《碼農寶》App上線了
阿新 • • 發佈:2021-01-15
Redis 釋出訂閱 (pub/sub) 是一種訊息通訊模式:傳送者 (pub) 傳送訊息,訂閱者 (sub) 接收訊息。
- 客戶端可以訂閱一個或者多個頻道,從而成為這些頻道的訂閱者,每當有其他客戶端向被訂閱的頻道傳送訊息時,頻道的訂閱者都會收到這條訊息。
- 舉例說明:
訂閱給定的一個或多個頻道的資訊。
SUBSCRIBE channel [channel …]
將資訊傳送到指定的頻道。
PUBLISH channel message
#####--客戶端1 127.0.0.1:6379> subscribe daily #訂閱 daily 訊息 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "daily" 3) (integer) 1 #####--客戶端2 127.0.0.1:6379> publish daily "Redis publish is test" # 釋出 daily訊息 (integer) 1 #####--客戶端1將會收到-客戶端2 釋出的最新 daily 訊息 127.0.0.1:6379> subscribe daily Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "daily" 3) (integer) 1 1) "message" 2) "daily" 3) "Redis publish is test"
訂閱一個或多個符合給定模式的頻道。
PSUBSCRIBE pattern [pattern …]
127.0.0.1:6379> psubscribe daily* #匹配所有daily打頭的頻道
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "daily*"
3) (integer) 1
取消訂閱指定的頻道, 如果不指定頻道,則會取消訂閱所有頻道
UNSUBSCRIBE [channel [channel …]]
127.0.0.1:6379> unsubscribe daily 1) "unsubscribe" 2) "daily" 3) (integer) 0
檢視訂閱與釋出系統狀態。
PUBSUB subcommand [argument [argument …]]
#PUBSUB CHANNELS [pattern] #列出當前的活躍頻道。 127.0.0.1:6379> pubsub channels # 列出所有 1) "daily" 2) "daily123" 3) "other" 127.0.0.1:6379> pubsub channels dail* #列出指定規則的活躍頻道 1) "daily" 2) "daily123" #PUBSUB NUMSUB [channel-1 ... channel-N]¶ #返回給定頻道的訂閱者數量, 訂閱模式的客戶端不計算在內。 127.0.0.1:6379> pubsub numsub daily daily123 1) "daily" 2) (integer) 1 3) "daily123" 4) (integer) 1 #PUBSUB NUMPAT 返回訂閱模式的數量。 # 這個命令返回的不是訂閱模式的客戶端的數量,而是客戶端訂閱的所有模式的數量總和。 127.0.0.1:6379> psubscribe dai* #增加一個訂閱模式 Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "dai*" 3) (integer) 1 127.0.0.1:6379> pubsub numpat #獲取訂閱模式數量 (integer) 1
退訂指定的規則, 如果沒有引數則會退訂所有規則
PUNSUBSCRIBE [pattern [pattern …]]
127.0.0.1:6379> punsubscribe daily
1) "punsubscribe"
2) "daily"
3) (integer) 0