redis - 基于redis实现的消息队列优缺点分析

目录:

1. 基于List的LPUSH+BRPOP的实现

2. PUB/SUB,订阅/发布模式

3. 基于Sorted-Set的实现

4. 基于Stream类型的实现

优缺点分析:

一、基于List的LPUSH+BRPOP的实现:

典型的命令:

  • LPUSH:将消息加入队列头部;
  • BRPOP:从队列末尾取出消息,阻塞模式(RPOP的阻塞版本);

优点:

  1. > 实现简单;
  2. > redis支持持久化消息,意味着消息不会丢失,可以重复查看(注意不是消费,只看不用,LRANGE类的指定);
  3. > 可以保证顺序,使用LPUSH命令,可以保证信息的顺序性;
  4. > 使用RPUSH,可以将消息放在队列的开头,达到优先消息的目的,可以实现简易的消息优先队列;

缺点:

  1. > 做消费确认ACK比较麻烦,就是不能保证消费者在读取之后,未处理后的宕机问题。导致消息意外丢失。通常需要自己维护一个pending列表,保证消息的处理确认;
  2. > 不能做广播模式,例如典型的Pub/Discribe模式;
  3. > 不能重复消费,一旦消费就会被删除;
  4. > 不支持分组消费,需要自己在业务逻辑层解决;
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值