生命周期
命令的执行过程
- 发送命令
- 命令在 redis 中排队
- 执行命令
- 返回结果
两点说明
- 慢查询发生在第 3 阶段;
- 客户端超时不一定慢查询,但慢查询是导致客户端超时的一大原因;
两个配置
-
slowlog-log-slower-than
(单位:微秒) -
slowlog-max-len
慢查询队列的长度,先进先出,固定长度,保存在内存中;
配置方法
- 修改配置文件重启(不推荐)
- 动态配置(推荐)
config set slowlog-max-len 128
config set slowlog-log-slower-than 1000
慢查询三个命令
slowlog get [n]
slowlog len
slowlog reset
运维经验
-
slowlog-log-slower-than
不要设置过大,默认 10ms,通常设置 1ms; -
slowlog-max-len
不要设置过小,通常设置 1000 左右; - 定期持久化慢查询队列;