Redis 慢查询分析

慢查询,大家可能已经接触到了MySQL的慢查询 。我们配置一个时间,如果查询时间超过了我们设置的时间,我们就认为这是一个慢查询.

Redis 慢查询分析

文章插图
 
如上图所示:redis客户端一条命令执行分4个步骤:
  1. 发送命令
  2. 命令进入队列排队
  3. 执行命令
  4. 返回结果
慢查询统计的是第3步(执行命令)的时间 。
参数配置
慢查询有两个参数需要配置:
  • [ ] slowlog-log-slower-than 表示慢查询预设的超时阀值,单位是微妙(μs)
    1s = 1000ms = 1_000_000μs
    默认10000微秒,即10毫秒
    执行超过这个时间的命令将被记录到慢查询日志
    slowlog-log-slower-than = 0:表示记录所有命令 。
    slowlog-log-slower-than < 0:表示不记录
  • [ ] slowlog-max-len 表示慢查询日志的条数
    默认为 128
    Redis使用列表存储慢查询日志
    当已经记录了128条慢查询,现在又来一条,最早记录的那条将被踢出,最新一条入列
修改配置
  • 直接修改配置文件
  • config set 命令动态修改
 
Redis 慢查询分析

文章插图
 
慢查询日志操作
  • 查询

Redis 慢查询分析

文章插图
 
当我们执行了查询命令之后,一条慢查询记录显示如下:
Redis 慢查询分析

文章插图
 
可以看到日志由4个属性组成:
1)日志的标识id
2)发生的时间戳
3)命令耗时
4)执行的命令和参数
  • 获取慢查询列表长度
【Redis 慢查询分析】slowlog len
  • 清空日志列表
# 如果慢查询设置的阀值是0,那么再查询len的时候为1 。slowlog resetredis.conf慢查询的注释和配置
Redis 慢查询分析

文章插图
 




    推荐阅读