慢查询概念
作为存储系统,Mysql等等,提供慢查询日志帮助开发和运维人员定位系统存在的满操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预期阈值,便会将这条命令的相关信息。例如发生的时间,耗时,命令的详细信息记录下来。
在Redis中提供了类似的功能实现上述的效果。
Redis客户端执行一条命令的过程
- 发送命令
- 命令排队
- 命令执行
- 返回结果
慢查询只会统计步骤3的时间。意味着慢查询并不代表客户端是否有超时问题。命令执行慢也有可能是因为网络问题或者Redis的服务器非常的繁忙,队列中排队的消息非常多。
Redis中慢查询的配置
- 在Redis的配置文件中慢查询的默认值是10毫秒,配置文件中的单位是微秒。微妙转化为毫秒是3个0
动态配置
使用动态命令进行修改,不需要重启服务就能生效
设置完之后查询配置文件中还是默认的10毫秒
可以使用config rewrite 进行将配置命令写入到配置文件
再次查看配置文件时间便是修改之后的20毫秒
将阈值设置为0,代表记录所有的命令信息。设置为小于0,则不记录任务命令信息。
配置文件设置
打开redis的配置文件redis.conf中找到下图对应内容就可以设置
设置日志存储条数
- 默认是128条
redis服务器的慢查询日志是保存在服务器状态的slowlog链表(内存列表)中,默认链表中就是128条,当内存列表被填满之后,再加入一条新的元素,队列中的第一条数据就会出列。