redis慢了如何排查?
可以考虑从下面几方面入手:

  1. 查看分析redis慢日志。看是否存在特别耗时的命令,如果存在可以进一步分析下命令的时间复杂度,看是否使用合理,有没有其它命令(数据结构)可以代替。
  2. 是否存在大key的情形。如果存入或修改的数据对象很大,也是有可能造成响应很慢,比如对ziplist这种数据结构进行修改时是有可能需要重新分配内存。一般redis运维团队是有扫描大key的工具的,可以通过工具进行查看地。
  3. 持久化策略配置的是否合理。rdb与aof如果配置不合理也会影响性能。rdb fork子进程会对CPU有影响,而aof是通过命令追加会直接影响响应,另外aof重写也是需要fork子进程。因此持久化策略需要根据使用的情况进行合理的配置与修正。
  4. 是否存在大批key同时过期的情况。大批key同时过期一方面redis需要在极短时间里清理大批过期key对象的内存,另外还会将用户请求打到底层数据库,这样甚至会引发其它更严重的问题。针对这个问题可以考虑在过期里加上随机数防止大批数据同时过期。

参考文章:
Redis变慢了,如何快速排查?


步履不停
38 声望13 粉丝

好走的都是下坡路