redis消息队列

codecraft

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.5k

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

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下了或重如泰山或轻如鸿毛的几笔。

11.3k 声望
1.1k 粉丝
0 条评论

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下了或重如泰山或轻如鸿毛的几笔。

11.3k 声望
1.1k 粉丝
宣传栏