Redis慢日志的实现示例
作者:冰冰很社恐
SLOWLOG 是用来读取和重置 Redis 慢查询日志的命令,Redis 2.2.12 版本开始支持
1.Redis 慢查询日志概述
客户端从发送命令到获取返回结果经过了以下几个步骤:
1. 客户端发送命令
2. 该命令进入 Redis 队列排队等待执行
3. Redis 开始执行命令 - Redis 命令执行完成
4. 命令执行结果返回给客户端
Redis 慢查询日志统计的时间,只包含第三步的 Redis 命令从开始执行到执行完成的时间。
2.慢查询日志的两个配置项
slowlog-log-slower-than
Redis 慢查询日志的时间阈值,单位微妙。
1) 值为正数,执行时间大于该值设置的微秒时才记录到慢日志中。默认 10000 微秒(0.01 秒)。
2) 值为负数,禁用慢查询日志。
3) 值为 0,所有命令都记录到慢日志中
slowlog-max-len
慢查询日志长度,最小值为零。默认 128
当记录新命令并且当前慢日志已达到最大长度时,最旧的一条记录将被删除。
可以通过编辑 redis.conf 或者使用 CONFIG GET/SET 命令来进行配置
127.0.0.1:6379> config get slowlog-log-slower-than 1) "slowlog-log-slower-than" 2) "10000" 127.0.0.1:6379> config get slowlog-max-len 1) "slowlog-max-len" 2) "128"
127.0.0.1:6379> config set slowlog-log-slower-than 0 OK 127.0.0.1:6379> config set slowlog-max-len 10 OK
3.读取慢日志记录
慢查询日志是记录在内存中的,记录速度非常快。
可以使用 SLOWLOG GET N 命令来读取慢日志,查询最近的 N 条记录。
该命令默认请求条数为 10 ,即 SLOWLOG GET 等价于 SLOWLOG GET 10
参数为 -1 时会获取整个慢日志信息。
日志输出格式
127.0.0.1:6379> slowlog get 2 1) 1) (integer) 13 2) (integer) 1629523068 3) (integer) 6 4) 1) "get" 2) "a" 5) "127.0.0.1:43942" 6) "lnrcoder"
1)每条日志唯一标识符
2)命令执行时的时间戳
3)命令执行消耗的时间,单位微秒
4)执行的命令数组
5)客户端地址和端口 (仅 4.0 以上版本支持)
6)客户端名称 (仅 4.0 以
127.0.0.1:6379> slowlog len (integer) 10 127.0.0.1:6379> slowlog reset OK 127.0.0.1:6379> slowlog len (integer) 0
上版本支持,默认名称为空,需要通过 client setname 命令进行设置)
4.查询慢日志记录长度
使用 SLOWLOG LEN 可以获取慢日志记录的长度。
127.0.0.1:6379> slowlog len (integer) 2
5.重置慢日志
使用 SLOWLOG RESET 命令用来重置慢日志。使用该命令进行日志重置后,信息将永远丢失。
127.0.0.1:6379> slowlog len (integer) 10 127.0.0.1:6379> slowlog reset OK 127.0.0.1:6379> slowlog len (integer) 0
到此这篇关于Redis慢日志的实现示例的文章就介绍到这了,更多相关Redis慢日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!