Slowlog
命令用于读取和重新设置redis慢查询日志.
概述
redis 慢查询日志, 是系统记录那些超过指定查询时间的日志. 执行的时间不包括和客户端的IO操作,和响应时间等, 而只是实际redis执行命令的时间(只是线程执行命令时,阻塞不能在接受处理其他请求花费的时间)
慢查询日志有两个参数:
- slowlog-log-slower-than: 单位微妙,指定redis执行命令的最大时间,超过将记录到慢查询日志中,
不接受负值,如果设置为0,每条命令都要记录到慢查询日志中. - slowlog-max-len: 设置慢查询日志长度,如果慢查询日志已经到最大值,如果有新命令需要记录,就将最老那条记录删除.
读取慢查询日志
慢查询日志是会存储在内存中, 没有文件存储慢查询日志内容. 所以在获取慢查询日志时候,会响应非常快. 对性能影响很小.
获取慢查询日志可以使用 slowlog get 命令, 将会所有的慢查询记录. 获取指定数量的慢查询使用:
slowlog get N
实例
redis 127.0.0.1:6379> slowlog get 2
1) 1) (integer) 14
2) (integer) 1309448221
3) (integer) 15
4) 1) "ping"
2) 1) (integer) 13
2) (integer) 1309448128
3) (integer) 30
4) 1) "slowlog"
2) "get"
3) "100"
slowlog get 返回值说明
返回的每个慢查询实体,都由四个字段组成
- 第一个字段是每个慢查询唯一标识。
- 处理完命令后的,Unix 时间戳
- 执行改名了所需要的时间,单位微妙
- 命令的参数列表,是个数组类型
每个慢查询实体的ID都是唯一的,而且不会被重新设置,只会在redis重启后才会重置它.
查看当前慢查询日志长度
Slowlog len
清空慢查询日志内容
SLOWLOG RESET