> 文档中心 > Redis慢查询分析

Redis慢查询分析


作者简介:
🌹 作者:暗夜91
🤟 个人主页:暗夜91的主页
📝 如果感觉文章写的还有点帮助,请帮忙点个关注,谢谢。


Redis慢查询分析

一、简介

同许多数据库一样,Redis也提供了慢查询日志用来帮助使用人员定位系统存在的慢查询。慢查询日志就是系统在命令执行前后每条命令的执行时间,当超过预设的阈值的时候,就会将这条命令执行的相关信息(例如:发生时间、耗时、命令的详细信息)记录下来。

Redis客户端执行一条命令分成4步:

  • 1)发送命令
  • 2)命令排队
  • 3)命令执行
  • 4)返回结果

如下图所示:
在这里插入图片描述

注意:

慢查询只会统计步骤3)的时间,所以即便没有慢查询,也不代表客户端不会存在超时问题。

二、慢查询配置

1、配置

Redis实现慢查询操作需要配置的属性有两个:

  • slowlog-log-slower-than :预设阈值,单位是微秒(1秒 = 1000毫秒 = 1000000微秒),默认值为10000,如果超过阈值,就将被记录在慢查询日志中。
  • slowlog-max-len :慢查询日志中最多存储多少条,实际上Redistribution中存储慢查询日志是使用的列表类型,该属性就是list的最大长度。当慢查询日志列表超过最大值时,最早插入的命令将会被移除。

提示:

如果slow-log-slower-than=0会记录所有的命令,slowlog-log-slower-than<0时,任何命令都不会被记录

Redis中有两种修改配置的方式,一种是修改配置文件,一种是通过 config set命令动态修改。

在这里插入图片描述

注意:

通过命令进行的配置无法直接写入到redis的配置文件中,如果需要把配置持久化到本地的配置文件中需要执行 config rewrite 命令

2、命令

(1)获取慢查询日志

slowlog get [n]

如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kUZqJYVi-1651148863578)(imgs/image-20220428201643743-16511482059591.png)]

可以看到慢查询有6个属性,分别是慢查询的标识id,发生时间戳、耗时、执行命令和参数、客户端信息。

(2)获取慢查询日志列表的长度

slowlog len

例如,当前Redis中有25条慢查询

在这里插入图片描述

(3)慢查询日志重置

slowlog reset

该命令实际上是对日志列表进行了清理操作。


End

街头篮球