Redis实现消息队列

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


包含以下内容:

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

一、生产/消费模式

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

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

参考:http://redisdoc.com/

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

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

二、发布/订阅模式

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

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

参考:http://redisdoc.com/

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容