Redis实现消息队列

本文讲述的是如何用redis实现消息队列的2中模式。


包含以下内容:

  1. 生产/消费模式
  2. 发布/订阅模式

一、生产/消费模式

所谓生产/消费即一个消息只能被一个消费者接收。

lpush:将一个或多个值 value 插入到列表 key 的表头
rpop:移除并返回列表 key 的尾元素。
brpop:它是 RPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BRPOP 命令阻塞,直到等待超时或发现可弹出元素为止。

参考:http://redisdoc.com/

使用lpush向队列里表头添加消息,使用brpop向队列里表尾阻塞取消息,没有消息就等待。

Redis实现消息队列_第1张图片

可以看到使用brpop queue 0来监听名为queue的队列来取值,如果没有值就等待,如果有值就取出值来,使用lpush queue "Message 01" 来往消息队列里增加消息。

二、发布/订阅模式

所谓发布/订阅即一个消息可以被多个订阅者同时接收

publish:将信息 message 发送到指定的频道 channel
subscibe:订阅给定的一个或多个频道的信息

参考:http://redisdoc.com/

Redis实现消息队列_第2张图片

可以看到使用publish向名为channel里发布了3个消息,然后3个订阅者同时收到这3个消息。

你可能感兴趣的:(Redis实现消息队列)