redis做消息队列有哪些缺点 1、做消费确认ACK比较麻烦 2、不能做广播 3、不能重复消费,一旦消费就会被删除 4、不支持分组消费
缺点 数据持久化问题: 相比专门的消息队列工具(如Kafka、RabbitMQ),Redis的持久化机制可能略显不足。在极端情况下(如突然宕机且未能及时持久化数据),可能会导致消息丢失。 复杂功能支持不足: Redis可能无法直接支持一些高级功能,如消息确认、死信队列、优先级队列的精细控制等。这些功能需要自己实现,增加了开发和维护的...
Redis默认情况下将队列持久化到内存中,当Redis重启时,队列中的消息将会丢失。为了解决这个问题,我们可以将消息持久化到磁盘上,或者使用Redis的AOF和RDB持久化机制。但即使启用了持久化机制,仍然存在消息丢失的风险。例如,在消息写入队列后但还未持久化到磁盘时,Redis宕机了,那么这部分消息将会丢失。 为了提高消息的可...
如果此时队列为空,那消费者依旧会频繁拉取消息,这会造成「CPU 空转」,不仅浪费 CPU 资源,还会对 Redis 造成压力。 怎么解决这个问题呢? 也很简单,当队列为空时,我们可以「休眠」一会,再去尝试拉取消息。代码可以修改成这样: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 whiletrue: msg = redis.rpop("...
缺点: 增加了系统的复杂型,幂等,重复消费,消息丢失等问题。 系统可用性降低,mq的故障会影响系统可用 一致性,消费端可能失败 场景:日志采集,发布订阅 3、死信队列是什么?延时队列是什么? 死信队列也是一个消息队列,它是用来存放那些没有成功消费的消息,通常可以用来处理作为消息重试 ...
Redis多消息队列的缺点: 存储容量有限:由于Redis是基于内存的数据库,存储容量有限,如果消息量过大,可能会导致内存不足。 单点故障:如果Redis服务器发生故障,可能会导致消息丢失或无法正常处理。 不支持消息顺序:Redis的消息队列是无序的,不支持严格的消息顺序,可能会导致消息的处理顺序不一致。 不支持消息重复消费:Red...
缺点: 内存限制:Redis是一种基于内存的数据库,因此,其存储空间受到了内存大小的限制。如果你的消息队列的消息量非常大,那么你可能需要更多的内存来保证其正常运行。 不支持多消费者:Redis只支持单消费者模式,即每个消息只能被一个消费者消费。这对于某些应用程序来说可能是一个限制。
redis做消息队列的缺点:基于List的LPUSH+BRPOP的消息队列缺点:1.做消费确认ACK比较麻烦。2.不能做广播模式,例如典型的Pub/Discribe模式。3.不能重复消费,一旦消费就会...
4.使⽤RPUSH,可以将消息放在队列的开头,达到优先消息的⽬的,可以实现简易的消息优先队列。同时也有缺点:1.做消费确认ACK⽐较⿇烦,就是不能保证消费者在读取之后,未处理后的宕机问题。导致消息意外丢失。通常需要⾃⼰维护⼀个Pending 列表,保证消息的处理确认。2.不能做⼴播模式,例如典型的Pub/...