Redis-配置慢查询

慢查询是什么?

内部执行时间超过某个指定时限的查询,就叫做慢查询。

指定时限如何设置

Redis配置文件中有如下两个字段:
在这里插入图片描述
slowlog-log-slower-than:该配置项单位是微秒,默认是10000微秒,也就是10毫秒,执行时间超过该时间的命令就是慢查询,不过慢查询只记录命令的执行时间,并不包括命令排队和网络传输时间,所以实际的命令执行时间只会大于等于慢查询时间,然后将这些慢查询加入到日志文件中。

slowlog-max-len:设置日志的最大数量,默认是128条,服务器使用先进先出的方式来保存慢查询日志,一旦慢查询日志达到了指定上限值,那么当有新的日志进来时,最旧的慢日志就会先被删除。所以建议把慢日志数量调大,例如1000,然后最好定期持久化慢日志,防止旧数据被新数据覆盖。

操作示例

由于修改配置文件后还要重启服务才能生效,所以建议使用动态配置的方式来修改慢查询的配置项,先了解以下几个命令:

 config set slowlog-log-slower-than xxx:设置慢查询时间
 config set slowlog-max-len xxx:设置最大慢日志数量
 config rewrite:把修改的配置持久化到配置文件中
 slowlog get[n]:获取慢查询队列
 slowlog len:获取慢查询队列的长度
 slowlog reset:清空慢查询队列

把慢查询时间指定为0微秒,保存redis执行的所有的命令,如下:
在这里插入图片描述
输入几个命令,如下:
在这里插入图片描述
通过 slowlog get查看慢日志,结果如下:
在这里插入图片描述
拿其中一个来解释下每行代表的意思:
在这里插入图片描述

第一行:日志的唯一标识符
第二行:命令执行时的UNIX时间戳
第三行:命令的执行时长,单位是微秒
第四行:命令以及命令的参数,以数组的形式排列

通过slowlog len来获取慢查询队列的长度,如下:
在这里插入图片描述
通过slowlog reset清空慢查询队列,如下:
在这里插入图片描述
此时慢查询队列中还会有一条日志,该日志记录的就是slowlog reset命令。

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/108559926
今日推荐