配置与查看集群慢日志
功能概述
慢请求引起的连接超时等问题是影响 Redis 服务质量的常见问题,通过查询慢日志能够帮助用户快速找到慢请求问题发生的位置,定位发出请求的客户端 IP,为解决超时问题提供可靠的依据。
Redis 慢日志是将命令执行时间超过指定值的记录在 Reids 内部的一个列表中。需要注意的是,慢日志中统计的命令执行时间不包括与客户端通信以及命令在单线程队列上的排队延迟,而只是实际执行命令所需的时间。因此,客户端执行命令的时间会大于命令实际执行的时间。
操作步骤
步骤一:配置慢日志参数
修改配置参数 slowlog-log-slower-than 与 slowlog-max-len,详情可参考修改集群配置参数。待修改参数说明如下。
| 参数 | 说明 |
|---|---|
slowlog-log-slower-than |
|
slowlog-max-len |
|
步骤二:查看慢日志
-
使用 redis-cli 连接到 Redis 数据库。详情参考连接数据库。
-
执行以下命令行,读取慢日志。其中
<n>用于指定查看条数。slowlog get <n> -
执行成功后,系统显示类似如下信息。
redis 127.0.0.1:6379> slowlog get 2 1) 1) (integer) 14 2) (integer) 1572883200 3) (integer) 15 4) 1) "ping" 2) 1) (integer) 13 2) (integer) 1572740791 3) (integer) 30 4) 1) "slowlog" 2) "get"以及 Redis 4.0 或更高版本的可选字段:
5) "127.0.0.1:58217" 6) "host-123"
-
查询结果说明如下。
参数 说明 1)
慢查询记录 ID。
2)
处理记录命令的 Unix 时间戳。
3)
执行所需的时间,以
微秒为单位。4)
该条记录的命令及参数。
5)
客户端 IP 地址和端口,仅限 v4.0 或更高版本。
6)
客户端名称,仅限 v4.0 或更高版本。
-
其他相关命令说明。
-
slowlog len用于获取慢查询队列长度。 -
slowlog reset用于清空慢查询队列。
-