天天看点

4.1 Redis之慢查询

1.生命周期

4.1 Redis之慢查询
  • 慢查询发生在第3阶段,是由命令引起的
  • 客户端超时不一定是慢查询,但慢查询是客户端超时的一个可能因素

2.和慢查询相关的两个配置

(1).showlog-max-len

它决定slowlog最多能保存多少条日志, slowlog本身是一个FIFO队列,当队列大小超过slowlog-max-len时,最旧的一条日志将被删除,而最新的一条日志加入到slowlog。

  • 保存在内存内
  • 先进先出队列
  • 固定长度,慢查询长度
  • 默认值为128

(2).showlog-log-slower-than

它决定要对执行时间大于多少微秒的查询进行记录。

  • 慢查询阈值(单位为微秒),默认值为10000
  • showlog-log-slower-than = 0表示将所有命令记录为慢查询
  • showlog-log-slower-than < 0表示不会将任何命令记录为慢查询

3.配置方法

(1).获取默认值

config get slowlog-max-len 
config get slowlog-log-slower-than      

(2).动态配置

config get slowlog-max-len 1000
config get slowlog-log-slower-than 1000      
  • 获取慢查询队列
showlog get n      
  • 获取慢查询队列长度
showlog len      
  • 情况慢查询队列
showlog reset      
  • showlog-max-len不要设置过大,默认为10ms,通常设置为1ms,实际中是根据QPS进行设置即可
  • showlog-log-slower-than不要设置过小,通常设置1000左右
  • 理解命令的生命周期
  • 定期持久化慢查询