在命令执行的前后计算每条命令的执行时间
参数设置
slowlog-log-slower-than 预设阀值,单位是微妙,=0记录所有的命令 <0对于任何命令都不会进行记录,建议设置为1ms,Redis的ops可以达到1000。
slowlog-max-len 实际上Redis用一个先进先出的列表来存储慢日志,就是列表的长度,达到最大长度的时候最早插入的命令就会被删除掉,记录慢查询时Redis会对长命令做截断操作,并不会占用大量的内存,参数设置较大些防止列表满了命令被剔除。
修改配置的参数:通过修改配置文件,使用config set 命令动态修改
如果要将配置持久化到本地配置文件中,需要执行config rewrite命令
config set slowlog-log-slower-than 20000
config set slowlog-max-len 1000
config rewrite
获取慢查询日志
slowlog get [n]
获取慢日志列表的当前长度 slowlog len
慢查询日志重置 slowlog reset
注意:
慢查询只记录命令执行的时间,不包括排队和网络传输时间,因为命令执行排队机制,慢查询会导致其他命令的级联阻塞
可以定期的使用slow log命令将慢查询日志持久化到其他的存储中,进行可是话界面的管理,Redis的私有云 CacheCloud提供了这样的功能。