【Redis釋出訂閱】
阿新 • • 發佈:2018-12-25
Redis通過PUBLISH
、SUBSCRIBE
等命令實現釋出與訂閱模式。
舉例:QQ群的公告,單個釋出者,多個收聽著。
***
釋出/訂閱
PUBLISH 頻道 訊息
將訊息釋出到指定的頻道。
.
SUBSCRIBE 頻道1 [頻道2] [...]
可同時訂閱多個頻道。
.
UNSUBSCRIBE 頻道1 [頻道2]
取消訂閱指定的頻道,如果不指定頻道則會取消訂閱所有頻道。
.
PSUBSCRIBE [匹配模式1] [匹配模式2]
訂閱一個或多個符合給定模式的頻道,每個模式以"*
"作為匹配符,例如"re*
"見匹配所有以"re
"開頭的頻道。
news.*
匹配所有以news.
開頭的頻道(news.it 、 news.global.today 等等),諸如此類。
.
PUNSUBSCRIBE [匹配模式1] [匹配模式2]
退訂指定的規則的頻道,如果未指定引數,則退訂所有規則的頻道。
.
PUBSUB subcommand [argument [argument ...]]
檢視訂閱與釋出系統狀態。
.
注意:
使用釋出訂閱模式實現的訊息佇列,當有客戶端訂閱頻道後,只能接收到後續釋出到該頻道的訊息。
之前傳送的不會快取,必須Provider和Consumer同時線上。
下面將以SUBSCRIBE
與PUBLISH
舉例:
.
啟動兩個視窗,進入redis-cli客戶端,並訂閱頻道,如下圖:
在啟動一個新視窗進入redis-cli客戶端,開始請頻道channel
釋出訊息:
此時,切回訂閱者視窗,即可看到其釋出的"PONG"訊息。
需要注意的是,如果傳送中文,則顯示的二進位制。
***