redis-slowlog

Redis 慢查询与延迟尖刺的定位

现象

接口偶发变慢、Redis 延迟尖刺,SLOWLOG 有记录;严重时客户端超时或连接堆积。Redis 单线程执行命令,慢命令会阻塞所有请求。

快速定位

redis-cli SLOWLOG GET 10
redis-cli CONFIG GET slowlog-log-slower-than
redis-cli CONFIG GET slowlog-max-len
redis-cli LATENCY DOCTOR
redis-cli --latency
redis-cli INFO commandstats
redis-cli INFO stats | grep -E 'instantaneous_ops|rejected'

常见根因

  1. O(N) 命令:KEYS、大范围 HGETALL/SMEMBERS/ZRANGE、SORT。
  2. 大 key 上的读写或删除。
  3. FLUSHALL、SAVE、AOF 重写或 fork 造成阻塞。
  4. 内存不足触发淘汰或 swap。
  5. 网络、客户端 pipeline 过大或输出缓冲区爆满。
  6. 主从复制/集群重定向带来的额外延迟。

修复

相关命令