redis慢查询管理

与 mysql 一样:当执行时间超过阀值,会将发生时间耗时的命令记录

redis 命令生命周期:发送 排队 执行 返回,慢查询只统计第 3 个执行步骤的时间,即慢查询发生在第三阶段,客户端超时不一定慢查询,但慢查询是客户端超时的一个可能因素

预设阀值:两种设置方式,默认为 10 毫秒,慢查询阈值(单位:微秒)

  1. 动态设置
127.0.0.1:6379> config set slowlog-log-slower-than 1000    # 1 毫秒 10000 微秒
OK
127.0.0.1:6379> config set slowlog-max-len 128   
OK
127.0.0.1:6379> config rewrite  # 写入配置文件
OK

不要设置过大,默认 10ms,通常设置 1ms
  1. redis.conf 修改
slowlog-log-slower-than 1000 
slowlog-max-len 128
# 修改保存即可

注意:slowlog-max-len 0 记录所有命令, -1 所有命令都不记录

原理:慢查询记录也是存在队列里的,slowlog-max-len 存放的记录最大条数,是一个先进先出的队列,保存在内存中,比如设置的 slowlog-max-len 10,当有第 11 条慢查询命令插入时,队列的第一条命令就会出列,第 11 条入列到慢查询队列中,

posted @ 2025-08-24 20:38  阿峰博客站  阅读(8)  评论(0)    收藏  举报