- 先进先出队列
- 固定长度,当队列满了时,最先进入队列的会被踢出
- 保存在内存中,会随着Redis的重启而消失
- 当命令的执行时间超过配置文件的时间时,会被扔到慢查询队列
1)生命周期
生命周期图及2点说明 image.png2)两个配置
1.修改配置文件,重新启动redis-server服务
#慢查询时间阈值(单位:微秒,0代表记录所有的命令,<0 不记录慢查询)
slowlog-log-slower-than 10000
# There is no limit to this length. Just be aware that it will consume memory.
# You can reclaim memory used by the slow log with SLOWLOG RESET.
#慢查询个数阈值,数字大小无效限制。
slowlog-max-len 128
2.动态命令修改:
127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "128"
127.0.0.1:6379> config get slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "10000"
127.0.0.1:6379> config get slowlog-log-slower-than slowlog-max-len
(error) ERR Unknown subcommand or wrong number of arguments for 'get'. Try CONFIG HELP.
127.0.0.1:6379> config set slowlog-max-len 129
OK
127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "129"
3)三个命令
slowlog len :获取慢查询队列长度
slowlog get count :获取慢查询队列的count个元素
slowlog reset :清空慢查询队列
4)运维经验
- slowlog-max-len不要设置过大,默认10毫秒,通常设置1毫秒
- slowlog-log-slow-than不要设置太小,通常设置1000左右
- 理解命令生命周期
- 定期持久化慢查询 (slowlog get count ——> to MySQL)
网友评论