Redis-慢查询

版权声明:嘟嘟嘟,转发记得提一下 https://blog.csdn.net/ticktak/article/details/82380158
  1. 概念

系统在命令执行前后计算每条命令的执行时间,当超过预定阀值时,记录命令的发生时间,耗时,命令的详细信息等。

Redis客户端执行一条命令分为发送命令、命令排队、命令执行、返回结果。慢查询只统计命令执行,所以没有慢查询并不代表客户端没有超时问题。

这里写图片描述

  1. 说明
    1. 慢查询发生在第三阶段(执行命令)
    2. 客户端超时不一定慢查询,但慢查询是客户端超时的一个因素
  2. 两个配置
    1. slowlog-max-len
      1. 慢查询是一个先进先出的队列
      2. 固定长度
      3. 保存在内存中
      4. 设置慢查询日志长度,如果慢查询日志已经达到最大值,如果有新命令需要记录,就将最老那条记录删除
    2. slowlog-log-slower-than
      1. 慢查询阈值(单位:微秒)
      2. slowlog-log-slower-than=0,记录所有命令
      3. slowlog-log-slower-than<0,不记录所有命令
  3. 配置方法
    1. 默认值
      1. config get slowlog-max-len=128
      2. config get slowlog-log-slower-than=1000
    2. 修改配置文件重启(不推荐)
    3. 动态配置
      1. config set slowlog-max-len 1000
      2. config set slowlog-log-slower-than 1000
  4. 慢查询命令
    1. slowlog get [n]:获取慢查询队列(n指定查询条数)
      1. 每个命令都由4各部分组成,分别是慢查询日志的表示ID,发生时间戳,命令耗时,执行命令和参数
    2. slowlog len:获取慢查询队列长度
    3. slowlog reset:清空慢查询队列
  5. 建议
    1. slowlog-log-slower-than不要设置过大,默认是10ms,通常设置1ms
    2. slowlog-max-len不要设置过小,通常设置1000左右
    3. 理解命令生命周期
    4. 定期持久化慢查询

猜你喜欢

转载自blog.csdn.net/ticktak/article/details/82380158
今日推荐