Redis的消息通知


Redis的消息通知可以使用List類型的LPUSH和RPOP(左進右出),
當然更方便的是直接使用Redis的Pub/Sub(發布/訂閱)模式。

1.使用List實現隊列

使用列表類型的LPUSH和RPOP命令(或者RPUSH和LPOP命令,右進左出)
可以很方便的實現一個任務隊列,但是需要設置定時去查詢隊列,
並且可以使用對應的阻塞命令,LPUSH和BRPOP命令,可以實現后台接收消息的推送

2.Pub/Sub 發布訂閱模式

Redis支持發布/訂閱的模式,"發布/訂閱"模式中包含兩種角色,分別是發布者和訂閱者。

訂閱者可以訂閱一個或若干個頻道(channel),發布者可以向指定的頻道發送消息,所有訂閱此頻道的訂閱者都會收到此消息。

但是需要注意一下,使用發布訂閱模式實現的消息隊列,當有客戶端訂閱channel后只能收到后續發布到該頻道的消息,之前發送的不會緩存,必須Provider和Consumer同時在線。

命令參數

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 ...]]

查看訂閱與發布系統狀態

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM