Redis 慢查询

  • 慢查询
    对于Redis客户端执行命令的生命周期,我们可以认为是下图所示;


    Redis 慢查询_第1张图片
    生命周期.png

    当执行命令的时间超过了我们设置的阈值,我们就认为它是慢查询。
    (1)慢查询发生在第三阶段
    (2)客户端超时不一定发生慢查询,但是慢查询是客户端超时的一个可能因素

  • 慢查询日志
    对于慢查询的命令,系统会将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详细信息)记录下来。
    • 慢查询日志组成
      慢查询日志由以下四个属性组成:标识ID,发生时间戳,命令耗时,执行命令和参数
    • 慢查询日志配置
      • slowlog-max-len :指定服务器保存慢查询日志的最大数量
        1. 日志保存在一个FIFO队列中(基于Redis的list实现)
        2. 队列的长度固定
        3. 日志保存在内存中(重启)
      • slowlog-log-slower-than :慢查询的预设阈值(微秒)
        1. =0时 ,记录所有命令;<0 不记录任何命令
    • 配置方法
      • 配置文件(不推荐)
      • configset 动态设置
        slowlog-max-len 高并发下一般设置为1ms,不要过大
        slowlog-log-slower-than 不要设置过小,通常为1000左右
        要定期对慢查询日志做持久化
    • 慢查询日志管理
      slowlog get [n] :选取n条日志
      slowlog len :获取慢查询队列的长度
      slowlog reset :清空日志队列

你可能感兴趣的:(Redis 慢查询)