redis慢查询管理
与 mysql 一样:当执行时间超过阀值,会将发生时间耗时的命令记录
redis 命令生命周期:发送 排队 执行 返回,慢查询只统计第 3 个执行步骤的时间,即慢查询发生在第三阶段,客户端超时不一定慢查询,但慢查询是客户端超时的一个可能因素
预设阀值:两种设置方式,默认为 10 毫秒,慢查询阈值(单位:微秒)
- 动态设置
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
- 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 条入列到慢查询队列中,

浙公网安备 33010602011771号