redis-4.0-slowlog慢日志查询

0x00 简介

redis 慢查询日志, 是系统记录那些超过指定查询时间的日志,执行的时间不包括和客户端的IO操作,和响应时间等, 而只是实际redis执行命令的时间。

redis-4.0-slowlog慢日志查询


0x01 配置

慢查询日志有两个参数:

  • slowlog-log-slower-than: 单位微秒,指定redis执行命令的最大时间,超过将记录到慢查询日志中, 不能是负值。如果需要记录每条命令,设置为0就可以了。

  • slowlog-max-len: 设置慢查询日志存储长度,如果达到最大值,最老的那日志将被清除掉。

这两个参数可以直接写到配置文件里面永久生效,也可以直接使用config set [参数名] [值]的方式临时修改:

CONFIG SET slowlog-log-slower-than 1000

CONFIG SET slowlog-max-len 10000


0x02 列出慢日志

慢日志都是存储在内存里面的,没有持久化的磁盘上,所以获取慢日志的时候,相应都是非常快的,对性能几乎没什么影响。使用slowlog get命令,可以获取到所有的慢查询记录,也可以指定获取最后若干数量的记录。

slowlog get 100 #获取最后100条记录

redis-4.0-slowlog慢日志查询


0x03 示例

127.0.0.1:6379> SLOWLOG get 2

1) 1) (integer) 2

2) (integer) 1516199156

3) (integer) 22

4) 1) "SLOWLOG"

2) "get"

5) "127.0.0.1:39644"

6) "client1"

2) 1) (integer) 1

2) (integer) 1516199151

3) (integer) 59

4) 1) "info"

5) "127.0.0.1:39644"

6) "client444"

返回的每个慢查询实体,都由6个字段组成,如果是4.0之前的版本只有前面4个字段:

  1. 第一个字段是每个慢查询唯一标识(每个慢查询实体的ID都是唯一的,而且不会被重新设置,只会在redis重启后才会被重置);

  2. 处理完命令后的,Unix 时间戳;

  3. 执行命令所需要的时间,单位微秒;

  4. 命令的参数列表,是个数组类型;

  5. 发起请求的客户端IP和端口;

  6. 客户端的名称(通过client setname client1 设置的客户端的名称)。


0x04 日志清理

查看当前慢查询日志长度

SLOWLOG LEN

清空慢查询日志内容

SLOWLOG RESET

相关推荐