## 任务目标
请审查 Redis 客户端的超时重试策略,并设计符合业务语义的幂等处理。
以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。
## 输入信息(选填)
两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。
重试业务:
代码与故障资料:
## 信息不完整时
先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。
### 优先确认
- 追踪客户端、Service、网关与任务层的重试入口及次数。
- 识别命令执行、响应接收和业务确认的边界,找结果未知的处理代码。
- 核对业务请求标识、判重记录、保留期、结果查询及并发覆盖条件。
- 读取现有故障测试和每层超时配置,计算最坏请求次数及总耗时。
### 可采用的默认处理
- 默认只读形成命令重试决策,不直接调整重试次数或扰动 Redis 连接。
- 无法判断是否执行的写操作归为结果未知,不按连接异常一律重发。
- 缺负载数据时按已知总时限列预算公式与停止条件,不指定所谓通用最优退避值。
### 必须有依据的事项
- 重复执行对计数、队列、费用或过期时间的业务后果不明时,不认定该写操作可以安全重试。
- 业务请求唯一性、判重有效期或超时后的合法恢复动作缺少依据时,不承诺端到端幂等。
只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。
### 资料仍不足时的交付
- 无代码时交付按命令语义分类的重试决策样例,以及多层放大和时间预算的计算模板。
- 无故障环境时提供发送前断开、执行后丢响应和并发旧值覆盖的隔离桩测试方案。
## 执行要求
适用范围:Redis客户端重连与业务重试;先确认客户端及版本,连接重试和命令重试分开处理。厂商示例参数不能当作本项目推荐值。
将命令已执行但响应超时纳入分析,审查重试的幂等性,并防止多层重试放大请求。
检查步骤:
1. 列出哪些异常发生在连接、发送、执行或接收阶段,按现有证据区分确定未执行、确定执行和结果未知;网络超时本身不能证明写操作没有成功。
2. 逐条按业务结果审查命令重复执行的影响,特别检查递增、入队、计费和带过期语义的写入;即使命令形式相同,也要评估并发新值被旧请求覆盖的风险。
3. 追踪客户端、业务方法、接口网关和任务调度层是否各自重试,计算最坏请求次数与总耗时;为每个操作指定唯一的重试责任层。
4. 为可重试操作定义总期限、次数、退避及随机扰动,结合剩余预算和业务重要性决定何时停止;参数待压测时给出推导方式,不编造固定最优数值。
5. 对非幂等或结果未知的操作,设计业务请求标识、状态查询或对账路径,说明判重记录的生命周期与故障边界;不得仅套一把锁就宣称端到端恰好执行一次。
6. 仅在隔离测试环境或已明确授权的生产演练中验证发送前断开、执行后丢响应、主备切换及连续失败;优先使用代理或桩模拟故障,不扰动普通生产连接,记录业务动作次数、最终状态、请求耗时和重试放大量;验证恢复后积压不会再次冲击系统。
## 交付与验收
输出要求:交付命令重试决策表、重试责任与预算、最小代码或配置、结果未知处理流程及故障用例。决策表写明“可重试条件|重复后果|停止条件|人工或自动对账入口”。 只报告有证据支持的问题;区分“已验证”“推测”和“待验证”,涉及变更时给出受影响文件或对象、最小修改和复核方法。代码与操作示例使用占位符,不写入真实密码。
### 本条完成检查
- 每类操作明确可重试条件、重复后果、责任层、总预算和停止条件。
- 结果未知有业务标识与查询或核对路径,不能仅以锁或重连成功证明幂等。
- 测试核对业务动作次数、最终状态和重试放大量;未执行的故障注入不写已验证。
按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。
## 参考资料与适用边界
来源(核验日期:2026-09-08):
[阿里云《Tair:客户端重试指南》](https://help.aliyun.com/zh/redis/use-cases/retry-mechanisms-for-redis-clients)
整理范围:仅依据上述公开文档的相关建议,业务场景、变量、检查流程与验收格式均为独立改写,不代表相关企业完整内部规范。