logo

为什么即使 Redis 很快,也不建议用原生 INCR 之类命令做跨机房准确计数?

Even though Redis is fast, why is using native INCR-like commands risky for accurate multi-DC counters?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: hard

分类: System Design

标签: INCR, active-active, idempotency

参考答案摘要

答案 Redis 原生命令在单实例/单主节点上原子性很好,但跨机房复制会遇到网络抖动、重试与不确定成功(客户端不知道上次 INCR 是否执行成功)。由于 INCR 更新天然 不幂等 ,一次请求被重复执行就会导致计数偏大。为了在多活场景保持准确,需要更新操作具备去重与可合并的语义;原生计数器很难做到这一点,除非额外引入 Lua/Set 存 userId、记录操作 ID 来实现应用层幂等。

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

为什么即使 Redis 很快,也不建议用原生 INCR 之类命令做跨机房准确计数?

Hardredisdistributed-systemsconsistency

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案