redis 的 slowlog 是 redis 用于记录记录慢查询执行时间的日志系统由于 slowlog 只保存在内存中, 因此 slowlog 的效率很高, 完全不用担心会影响到 redis 的性能 Slowlog 是 Redis 从 2.2.12 版本引入的一条命令
一 slowlog 设置
slowlog 有两种设置方式:
1redis.conf 设置
在 redis.conf 中有关于 slowlog 的设置:
slowlog - log - slower - than 10000
slowlog-max-len 128
其中 slowlog-log-slower-than 表示 slowlog 的划定界限, 只有 query 执行时间大于 slowlog-log-slower-than 的才会定义成慢查询, 才会被 slowlog 进行记录 slowlog-log-slower-than 设置的单位是微妙, 默认是 10000 微妙, 也就是 10ms
slowlog-max-len 表示慢查询最大的条数, 当 slowlog 超过设定的最大值后, 会将最早的 slowlog 删除, 是个 FIFO 队列
2 使用 config 方式动态设置 slowlog
如下, 可以通过 config 方式动态设置 slowlog
- 查看当前 slowlog - log - slower - than 设置
127.0.0.1 : 6379 > CONFIG GET slowlog - log - slower - than
1)
"slowlog-log-slower-than"
2)"10000"
- 设置 slowlog - log - slower - than 为 100ms
127.0.0.1 : 6379 > CONFIG SET slowlog - log - slower - than 100000
OK
- 设置 slowlog - max - len 为 1000
127.0.0.1 : 6379 > CONFIG SET slowlog - max - len 1000
OK
二 slowlog 查看
1 查看 slowlog 总条数
127.0.0.1 : 6379 > SLOWLOG LEN
(integer) 4
2 查看 slowlog
127.0.0.1 : 6379 > SLOWLOG GET
1) 1) (integer) 25
2)(integer) 1440057769
3) (integer) 6
4) 1)"SLOWLOG"
2)"LEN"
2) 1) (integer) 24
2)(integer) 1440057756
3) (integer) 36
4) 1)"CONFIG"
2)"GET"
3)
"slowlog-log-slower-than"
3) 1) (integer) 23
2)(integer) 1440057752
3) (integer) 11
4) 1)"CONFIG"
2)"SET"
3)
"slowlog-log-slower-than"
4)"1"
4) 1) (integer) 22
2)(integer) 1440057493
3) (integer) 27
4) 1)"CONFIG"
2)"GET"
3)
"slowlog-log-slower-than"
5) 1) (integer) 21
2)(integer) 1440057133
3) (integer) 7
4) 1)"monitor"
如果要获取指定的条数可以使用 SLOWLOG GET N 命令
127.0.0.1 : 6379 > SLOWLOG GET 1
1) 1)(integer) 26
// slowlog 唯一编号 id
2)(integer) 1440057815
// 查询的时间戳
3)(integer) 47
// 查询的耗时 (微妙), 如表示本条命令查询耗时 47 微秒
4) 1)"SLOWLOG"
// 查询命令, 完整命令为 SLOWLOG GET,slowlog 最多保存前面的 31 个 key 和 128 字符
2)"GET"
来源: http://www.92to.com/bangong/2018/02-01/33247227.html