面试真题

数据库 · 中等 · 腾讯

Redis 的 key 已写入,但消费者宕机了怎么办?

中等 数据库 🎤 腾讯
参考答案
结论:取决于Redis使用的数据结构;若用List或Stream则消息不丢,Pub/Sub会丢。要点:1) List队列(LPUSH/BRPOP),key已写入则消息存于内存列表中,消费者宕机重启后可继续弹出,但需防止超时未ACK导致重复消费;2) Pub/Sub发布订阅,消息发后既忘,消费者宕机期间消息永久丢失,应改用Stream;3) Redis Stream消费者组,宕机后未ACK消息进入Pending列表,可通过XPENDING查看并用XCLAIM重新分配处理。建议用Stream保证可靠。
题目整理自公开面经,答案由校招宝自研生成,仅供参考