建议先关注、点赞、收藏后再阅读。
Redis的慢查询日志记录了以下信息:
- 时间戳:记录慢查询发生的时间。
- 执行耗时:记录慢查询的执行耗时,以微秒为单位。
- 命令:记录执行的慢查询命令。
- 执行节点:记录慢查询在Redis集群中执行的节点。
可以通过配置Redis的慢查询日志来自定义记录的信息内容。通过修改Redis的配置文件redis.conf或者在运行时使用CONFIG SET命令来配置。以下是自定义慢查询日志信息内容的配置项:
- slowlog-log-slower-than:配置记录为慢查询的阈值,单位为微秒。默认值为10000(10毫秒)。
- slowlog-max-len:配置慢查询日志的最大长度,即最多记录多少条慢查询。默认值为128。
举例来说,如果要将慢查询日志记录的阈值改为1毫秒,并最多记录100条慢查询日志,则可以在配置文件中添加以下配置:
代码语言:txt复制slowlog-log-slower-than 1000
slowlog-max-len 100
或者在运行时使用CONFIG SET命令来设置:
代码语言:txt复制CONFIG SET slowlog-log-slower-than 1000
CONFIG SET slowlog-max-len 100
通过以上配置变更,Redis的慢查询日志将记录那些执行时间超过1毫秒的命令,并最多记录100条慢查询日志。
在Redis中查看慢查询日志的内容,可以使用SLOWLOG GET
命令。
具体语法如下:
代码语言:txt复制SLOWLOG GET [n]
其中,n
为可选参数,表示获取最近的n
条慢查询日志内容。如果不指定n
,则获取所有的慢查询日志。
例如,获取最近的5条慢查询日志,可以使用以下指令:
代码语言:txt复制SLOWLOG GET 5
执行上述指令后,Redis将返回最近的5条慢查询日志的内容,格式如下:
代码语言:txt复制1) 1) (integer) 1615326094 // 日志ID
2) (integer) 99619 // 查询耗时(微秒)
3) (integer) 1615077644018 // 时间戳(毫秒)
4) 1) "GET" // 查询命令
2) "testkey"
2) 1) (integer) 1615326549
2) (integer) 105764
3) (integer) 1615077722189
4) 1) "HGETALL"
2) "userinfo:10001"
...
每条慢查询日志都以数组形式表示,包含以下信息:
- 日志的ID(integer)。
- 查询的耗时(微秒,integer)。
- 时间戳(毫秒,integer)。
- 查询命令和参数(数组),其中第一个元素表示查询命令,后续元素表示命令的参数。
注意:使用SLOWLOG GET
命令获取慢查询日志会清空Redis的慢查询日志缓存,因此每次获取都是获取最近的慢查询日志。