redis客户执行一条命令可分为以下几步:
1、发送命令
2、命令排队
3、命令执行
4、返回结果
redis中的慢查询只会统计第三步的时间
所以没有慢查询不能代表客户端没有超时
redis中慢查询的配置参数
slowlog-log-slower-than 10000 超过多长时间,算慢查询单位是微秒
slowlog-max-len 128 慢查询日志最多存储多少条,但是会消耗内存 redis使用了一个列表来存储慢查询日志
slowlog-log-slower-than 设置为0,表示记录所有的命令
slowlog-log-slower-than 设置 为负数,表示关闭慢查询日志功能
#修改redis.conf配置文件来修改
slowlog-log-slower-than 10000
slowlog-max-len 128
管理redis慢查询的命令
获取慢查询日志
格式:slowlog get 条数
127.0.0.1:6379> slowlog get 1
1) 1) (integer) 0
2) (integer) 1592546635
3) (integer) 1001206
4) 1) "migrate"
2) "127.0.0.1"
3) "6379"
4) "k1"
5) "0"
6) "1000"
#每个慢查询日志由4个属性组成
慢查询日志的标识id
发生时间戳
命令耗时
执行命令和参数
获取慢查询日志列表长度
#获取当前存了多少条,慢日志
127.0.0.1:6379> slowlog len
(integer) 1
重置慢查询日志
127.0.0.1:6379> slowlog reset
OK
127.0.0.1:6379> slowlog len
(integer) 0
建议设置
slowlog-max-len 1000 线上环境建议设置为1000
slowlog-log-slower-than 10000 建议设置10毫秒,ops场景建议1毫秒