Redis 怎样实现消息队列?
查看完整题解
参考回答
直接回答
简单队列可用 List。需要记录消息、消费组、确认与重领时,优先考虑 Streams。Pub/Sub 适合在线通知,断线期间的消息不会补送。
讲清原理
Streams 消费组读到消息后记录待确认。处理成功再 XACK。消费者挂掉可用 XAUTOCLAIM 重领闲置的待确认项,重复执行要靠业务幂等。
例子与易错点
异步生成报表时让任务 ID 唯一,并监控未确认任务和积压。设置裁剪策略前,确认不会提前删掉仍需处理的内容。
使用显式消息 ID 演示投递、待确认与确认。
XADD q47:jobs 1-0 kind report
XGROUP CREATE q47:jobs workers 0-0
XREADGROUP GROUP workers worker-1 COUNT 1 STREAMS q47:jobs >
XACK q47:jobs workers 1-0
相关题 · 第 48 题、第 63 题
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。