Redis實現消息隊列

本文講述的是如何用redis實現消息隊列的2中模式。


包含以下內容:

  1. 生產/消費模式
  2. 發(fā)布/訂閱模式

一、生產/消費模式

所謂生產/消費即一個消息只能被一個消費者接收。

lpush:將一個或多個值 value 插入到列表 key 的表頭
rpop:移除并返回列表 key 的尾元素。
brpop:它是 RPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連接將被 BRPOP 命令阻塞,直到等待超時或發(fā)現可彈出元素為止。

參考:http://redisdoc.com/

使用lpush向隊列里表頭添加消息,使用brpop向隊列里表尾阻塞取消息,沒有消息就等待。

可以看到使用brpop queue 0來監(jiān)聽名為queue的隊列來取值,如果沒有值就等待,如果有值就取出值來,使用lpush queue "Message 01" 來往消息隊列里增加消息。

二、發(fā)布/訂閱模式

所謂發(fā)布/訂閱即一個消息可以被多個訂閱者同時接收

publish:將信息 message 發(fā)送到指定的頻道 channel
subscibe:訂閱給定的一個或多個頻道的信息

參考:http://redisdoc.com/

可以看到使用publish向名為channel里發(fā)布了3個消息,然后3個訂閱者同時收到這3個消息。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容