

优点:
- 利用 Redis 存储,不受 JVM 内存限制
队列数据存在 Redis 中,而不是 Java 应用内存里,所以消息量大也不会挤爆 JVM。
2.依托 Redis 的持久化机制,数据安全性较好
Redis 支持 AOF/RDB 等持久化方式,即使服务重启,消息也能恢复,减少丢失风险。
3.天然满足消息顺序
List 是有序结构,配合 LPUSH/RPOP 或 RPUSH/LPOP 可以保证先进先出。
缺点:
- 无法完全避免消息丢失
如果消费者取出消息后还没处理完成就宕机,消息已经被移出队列,无法自动重试,需要额外处理。
2.只支持单消费者
一个消息只能被一个消费者取走,缺乏多消费者协作、消费确认等高级功能,扩展能力有限。