redis消息队列

redis系列

本文主要简述redis作为消息队列的利弊和场景。

消息中间件要素

消息模型

  • 传送模型(发布订阅or点对点)
    是基于topic的发布订阅还是点对点模型

  • 接收模型(推or拉)
    消息是由生产者推还是由消费者拉

消息投递可靠性

  • at-most-once(消息丢失)
    消息被投递0或者1次,消息可能被丢失

  • at-least-once(消息重复)
    消息可能被投递多次,直到收到ack,会造成消息重复。像rabbitmq开启消息持久化及ack机制,可以保证此投递策略,确保消息投递成功,但可能造成消息重复。

  • exactly-once(消息仅且投递一次)
    消息通过事务等机制保证对方能成功接收,而且不会重复接收

消息持久化

消费者是否可以接收离线时的消息

消息优先级

消息是否支持优先级

消息回溯

消息是否可以重复消费

redis做消息队列

传送模型 接收模型 投递模型 持久化 优先级 回溯
发布订阅 at-most-once 需要自己支持

点对点模式需要自己通过list的lpush和brpop来模拟实现。
优先级队列可以用zset来实现

参考

阅读 6.2k

推荐阅读
code-craft
用户专栏

spring boot , docker and so on 欢迎关注微信公众号: geek_luandun

699 人关注
1777 篇文章
专栏主页