版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zx711166/article/details/82842568
客户端请求Redis的生命周期
- 慢查询发生在第3阶段。
- 客户端超时不一定是慢查询,但是慢查询是客户端超时的一个可能的原因。
慢查询的两个配置
slowlog-max-len
它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len 时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log。
- 先进先出队列
- 固定长度,队列满后,第一个进入队列的将会被踢出
- 保存在内存中
slowlog-log-slower-than
它决定要对执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录。
- 慢查询阈值(单位:微秒)
- slowlog-log-slower-than=0,记录所有命令
- slowlog-log-slower-than<0,不记录任何命令
配置方法
- 默认值
config get slowlog-max-len = 128
config get slowlog-log-slower-than = 10000
- 修改配置文件重启
- 动态配置
config get slowlog-max-len 1000
config get slowlog-log-slower-than 1000
慢查询命令
- slowlog get [n]:获取慢查询队列
- slowlog len:获取慢查询队列长度
- slowlog reset:清空慢查询队列
运维经验
- slowlog-max-len 不要设置过大,默认10ms,通常设置1ms
- slowlog-log-slower-than 不要设置过小,通常设置1000左右
- 理解命令的生命周期
- 定期持久化慢查询