Redis 慢查询
2018-07-14 本文已影响0人
黄金矿工00七
-
慢查询
对于Redis客户端执行命令的生命周期,我们可以认为是下图所示;
生命周期.png
当执行命令的时间超过了我们设置的阈值,我们就认为它是慢查询。
(1)慢查询发生在第三阶段
(2)客户端超时不一定发生慢查询,但是慢查询是客户端超时的一个可能因素 - 慢查询日志
对于慢查询的命令,系统会将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详细信息)记录下来。- 慢查询日志组成
慢查询日志由以下四个属性组成:标识ID,发生时间戳,命令耗时,执行命令和参数 - 慢查询日志配置
- slowlog-max-len :指定服务器保存慢查询日志的最大数量
- 日志保存在一个FIFO队列中(基于Redis的list实现)
- 队列的长度固定
- 日志保存在内存中(重启)
- slowlog-log-slower-than :慢查询的预设阈值(微秒)
- =0时 ,记录所有命令;<0 不记录任何命令
- slowlog-max-len :指定服务器保存慢查询日志的最大数量
- 配置方法
- 配置文件(不推荐)
- configset 动态设置
slowlog-max-len 高并发下一般设置为1ms,不要过大
slowlog-log-slower-than 不要设置过小,通常为1000左右
要定期对慢查询日志做持久化
- 慢查询日志管理
slowlog get [n] :选取n条日志
slowlog len :获取慢查询队列的长度
slowlog reset :清空日志队列
- 慢查询日志组成