1 慢查询日志说明
redis客户端执行命令包括4步
1)发送命令
2)命令排队
3)命令执行
4)返回结果
慢查询命令只统计第三步的时间,如果没有慢查询日志,不代表客户端没有超时
2 相关配置
redis慢查询相关配置主要包括2个
慢查询时间阈值配置: slowlog-log-slower-than,默认10000微秒,即10毫秒。如果执行时间超过10ms这条命令就会被记录到慢查询日志中。如果配置值=0,则会记录所有命令;如果<0,则任何命令都不记录
慢查询日志存储量:slowlog-max-len,默认128,最多记录128条慢查询日志,如果继续增加则一开始的日志就会出列
3 相关命令
3.1 获取慢查询日志
slowlog get [n],返回当前redis慢查询,n可以指定条数
慢查询日志包括4部分,分别是慢查询日志标识id、发生时间戳(s)、命令耗时、执行命令和参数
127.0.0.1:6379> slowlog get
1) 1) (integer) 0
2) (integer) 1598884088
3) (integer) 10613
4) 1) "COMMAND"
5) "127.0.0.1:58312"
6) ""
3.2 获取慢查询日志个数
slowlog len
3.3 慢查询日志清理
slowlog reset
4 最佳实践
高QPS系统slowlog-log-slower-than建议设置为1ms,确保能够统计耗时超过1ms的命令
slowlog-max-len可以适当调大,生产环境可以设置为1000以上,必要的话可以定期执行slowlog get命令,把慢查询日志持久化到mysql中