Redis

Redis第🔟课 慢查询

2019-04-30  本文已影响0人  小超_8b2f
  1. 先进先出队列
  2. 固定长度,当队列满了时,最先进入队列的会被踢出
  3. 保存在内存中,会随着Redis的重启而消失
  4. 当命令的执行时间超过配置文件的时间时,会被扔到慢查询队列
1)生命周期
生命周期图及2点说明 image.png
2)两个配置

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)运维经验
  1. slowlog-max-len不要设置过大,默认10毫秒,通常设置1毫秒
  2. slowlog-log-slow-than不要设置太小,通常设置1000左右
  3. 理解命令生命周期
  4. 定期持久化慢查询 (slowlog get count ——> to MySQL)
上一篇 下一篇

猜你喜欢

热点阅读