Redis 慢日志命令是 Redis 用来记录查询执行时间的日志系统。查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。
另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。
查询当前 Redis 慢日志条目数,且返回最后一条慢日志信息。如下:
127.0.0.1:6379> slowlog len (integer) 25 127.0.0.1:6379> slowlog get 1 1) 1) (integer) 24 2) (integer) 1677132267 3) (integer) 10089 4) 1) "scan" 2) "374483" 3) "MATCH" 4) "*" 5) "COUNT" 6) "10000" 5) "127.0.0.1:24122" 6) ""
下面列出了 redis 慢日志相关命令。
此命令返回慢速日志中的当前条目数。每当命令超过慢日志慢于配置指令定义的执行时间阈值时,就会向慢日志添加新条目。慢日志中的最大条目数由慢日志最大 len 配置指令控制。一旦慢日志达到其最大大小,每当创建新条目时,都会删除最旧的条目。慢日志可以使用慢日志重置命令清除。语法如下:
SLOWLOG LEN
实例:
127.0.0.1:6379> slowlog len (integer) 25
该命令按时间顺序返回慢速日志中的条目。
Redis 慢日志是一个记录超过指定执行时间的查询的系统。执行时间不包括与客户端通信、发送回复等 I/O 操作,而只是实际执行命令所需的时间(这是命令执行中线程被阻塞且在此期间无法为其他请求提供服务的唯一阶段)。
每当命令超过 slowlog-log-slower-than 配置指令定义的执行时间阈值时,就会向慢日志添加新条目。慢日志中的最大条目数由 slowlog-max-len 配置指令控制。
默认情况下,该命令返回日志中的所有条目。可选的 count 参数限制返回的条目数,因此该命令最多返回计数条目。
慢日志中的每个条目都由以下六个值组成:
1. 每个慢日志条目的唯一渐进式标识符。
2. 处理记录的命令的 unix 时间戳。
3. 执行所需的时间,以微秒为单位。
4. 组成命令参数的数组。
5. 客户端 IP 地址和端口。
6. 客户端名称(如果通过客户端 SET NAME 命令设置)。
可以使用条目的唯一 ID 来避免多次处理慢日志条目(例如,您可能有一个脚本为每个新的慢日志条目发送电子邮件警报)。在 Redis 服务器执行过程中,ID 永远不会重置,只有重新启动服务器才会重置它。
语法如下:
SLOWLOG GET [count]
实例:
127.0.0.1:6379> slowlog get 2 1) 1) (integer) 24 2) (integer) 1677132267 3) (integer) 10089 4) 1) "scan" 2) "374483" 3) "MATCH" 4) "*" 5) "COUNT" 6) "10000" 5) "127.0.0.1:24122" 6) "" 2) 1) (integer) 23 2) (integer) 1677132267 3) (integer) 10331 4) 1) "scan" 2) "290371" 3) "MATCH" 4) "*" 5) "COUNT" 6) "10000" 5) "127.0.0.1:24122" 6) ""
此命令重置慢速日志,清除其中的所有条目。一旦删除,信息将永远丢失。语法如下:
SLOWLOG RESET
实例:
127.0.0.1:6379> slowlog len (integer) 25 127.0.0.1:6379> slowlog reset OK 127.0.0.1:6379> slowlog len (integer) 0