Redis消息队列

作者: 5473 分类: Redis 发布时间: 2015-04-22 16:28 阅读数:695
一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式。这两种场景的消息队列redis都能实现。

定义:

  • 生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有。
  • 发布者订阅者模式:发布者生产消息放到队列里,多个监听队列的消费者都会收到同一份消息;即正常情况下每个消费者收到的消息应该都是一样的。

Redis中的生产者消费者模式是用list数据结构进行实现的, 将待处理的消息塞入到消息队列中。

Redis中的订阅发布模式, 当没有订阅者时, 消息会被直接丢弃(Redis不会持久化保存消息)。

本文主要讨论Redis的订阅发布模式。

redis 发布订阅常用命令:

  • PSUBSCRIBE pattern [pattern …] 订阅一个或多个符合给定模式的频道。
  • PUBSUB subcommand [argument [argument …]] 查看订阅与发布系统状态。
  • PUBLISH channel message 将信息发送到指定的频道。
  • PUNSUBSCRIBE [pattern [pattern …]] 退订所有给定模式的频道。
  • SUBSCRIBE channel [channel …] 订阅给定的一个或多个频道的信息。
  • UNSUBSCRIBE [channel [channel …]] 指退订给定的频道。

实例

redis作为消息队列是有很大的局限性的,本身作为一个以缓存/内存存储为主的东西,只是因为某些api上的特性,我们得以实现一个简单的队列服务,本身我们要选择好业务的取舍,灵活的使用redis的MQ支持,才能实现一个好的服务。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注