本文講述的是如何用redis實現消息隊列的2中模式。
包含以下內容:
- 生產/消費模式
- 發(fā)布/訂閱模式
一、生產/消費模式
所謂生產/消費即一個消息只能被一個消費者接收。
lpush:將一個或多個值 value 插入到列表 key 的表頭
rpop:移除并返回列表 key 的尾元素。
brpop:它是 RPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連接將被 BRPOP 命令阻塞,直到等待超時或發(fā)現可彈出元素為止。
使用lpush向隊列里表頭添加消息,使用brpop向隊列里表尾阻塞取消息,沒有消息就等待。

可以看到使用brpop queue 0來監(jiān)聽名為queue的隊列來取值,如果沒有值就等待,如果有值就取出值來,使用lpush queue "Message 01" 來往消息隊列里增加消息。
二、發(fā)布/訂閱模式
所謂發(fā)布/訂閱即一個消息可以被多個訂閱者同時接收
publish:將信息 message 發(fā)送到指定的頻道 channel
subscibe:訂閱給定的一個或多個頻道的信息

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