分布式缓存服务 DCS-配置Redis客户端重试机制:推荐的重试准则

时间:2025-02-12 15:01:38

推荐的重试准则

重试准则

说明

仅重试幂等的操作

由于超时可能发生在下述任一阶段:

  • 该命令由客户端发送成功,但尚未到达Redis。
  • 命令到达Redis,但执行超时。
  • 命令在Redis中执行结束,但结果返回给客户端时发生超时。

执行重试可能导致某个操作在Redis中被重复执行,因此不是所有操作均适合设计重试机制。通常推荐仅重试幂等的操作,例如SET操作,即多次执行SET a b命令,那么a的值只可能是b或执行失败;如果执行LPUSH mylist a则不是幂等的操作,可能导致mylist中包含多个a元素。

适当的重试次数与间隔

根据业务需求和实际场景调整适当的重试次数与间隔,否则可能引发下述问题:

  • 如果重试次数不足或间隔太长,应用程序可能无法完成操作而导致失败。
  • 如果重试次数过大或间隔过短,应用程序可能会占用过多的系统资源,且可能因请求过多而堵塞在服务器上无法恢复。

常见的重试间隔方式包括立即重试、固定时间重试、指数增加时间重试、随机时间重试等。

避免重试嵌套

重试嵌套可能导致重试时间被指数级放大。

记录重试异常并打印失败报告

在重试过程中,建议在WARN级别上打印重试错误日志,同时,仅在重试失败时打印异常信息。

support.huaweicloud.com/bestpractice-dcs/dcs-bp-02206222.html