慢查询日志帮助开发人员和运维人员定位系统存在的慢操作
慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阈值,就将这条命令的相关信息(例如 发生时间 耗时 命令的详细信息)记录下来。
Redis命令的生命周期
1、客户端发送命令
2、命令在redis中排队
3、Redis执行命令
4、Redis向客户端返回结果
注意:慢查询只统计步骤3的时间,所以没有慢查询不代表客户端没有超时问题。
慢查询两个参数配置
对于慢查询 需要明确:
预设阈值怎么设置?
慢查询记录存放在哪里?
Redis提供了 slowlog-log-slower-than 和 slowlog-max-len 配置来解决
Slowlog-log-slower-than 就是那个预设阈值 单位是微秒
(1秒=1000毫秒=1000000微秒) 默认值是10000 假如执行了一条 很慢的命令 例如 keys * 如果它的执行时间超过了10000微秒那么它将被记录在慢查询日志中。
注意:
Slowlog-log-slower-than =0 会记录所有的命令,slowlog-log-slower-than<0 对于任何命令都不会进行记录
实际上Redis使用了一个列表来存储慢查询日志, slowlog-max-len 就是列表最大长度。
一个新的命令满足慢查询条件时被插入到这个列表中,,当慢查询日志列表已处于其最大长度时,最早插入的一个命令将从列表中移除。
例如:slowlog-max-len 设置为5 当有第6条慢查询插入的话,那么第一条数据就会出列,第6条慢查询就会入列。
Redis中有2种修改配置方法
1.修改配置文件
2.使用config set命令动态修改