文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Redis性能瓶颈分析之慢查询

2024-12-02 02:16

关注

许多数据库会提供慢查询日志帮助开发和运维人员定位系统存在的慢操作。所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当然在数据库中最常见的就是select这些sql语句了,当超过预设阀值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录下来,Redis也提供了类似的功能。

那么如何使用Redis所提供的慢查询功能呢?Redis主要提供了slowlog-log-slower-than和slowlog-max-len两个配置参数来提供这项功能。两项参数分别用来设置慢查询的阈值以及存放慢查询的记录。首先对redis的这两个配置进行一个说明 :

从字面意思就可以看出,可以通过slowlog-log-slower-than参数设置什么情况下是慢语句,只有redis命令执行时间大于slowlog-log-slower-than的才会定义成慢查询,才会被slowlog进行记录。它的单位是微秒(1秒=1000毫秒=1000000微秒),在初始情况下默认值是10000,也就是10ms,假如执行了一条比较慢的命令,如果它的执行时间超过了 10ms ,那么它将被记录在慢查询日志中。(如果slowlog-log-slower-than=0会记录所有的命令,slowlog-log-slower than<0对于任何命令都不会进行记录)

从字面意思看,slowlog-max-len说明了慢查询日志最多可以存储多少条记录,实际上Redis使用了一个列表来存储慢查询日志,slowlog-max-len就是列表的最大长度,它自身是一个先进先出队列,当slowlog超过设定的最大值后,会将最早的slowlog删除。简而言之当一个新的命令满足慢查询条件时会被插入到这个列表中,当慢查询日志列表已处于其最大长度时,最早插入的一个命令将从列表中移出,例如slowlog-max-len设置为 50 ,当有第51条慢查询插入的话,那么队头的第一条数据就出列,第51条慢查询就会入列。

接下来详细介绍一下如何配置这两个参数,有两种方式进行配置,以下截图全部使用了redis -5.0.5版本 :

方式一:通过配置redis.conf文件进行配置。

通过修改redis .conf文件之后重启redis服务 , 配置即可生效 。

方式二:通过CONFIG命令进行动态配置

配置查询时间超过1毫秒的命令进行记录

保存500条慢查记录

通过config get命令确认配置已生效

要注意通过config命令配置的为动态生效 , 一旦服务重启则会重新恢复为默认设置 , 所以建议在排查问题时通过config这种方式进行配置 , 但是服务稳定后通过修改配置文件方式进行最终确认 (可以通过config rewrite命令持久化到本地文件 , 但要主要启动redis时要指定redis . conf文件 该命令才可以生效)。

相关的参数已经设置完成了 , 那么如何查看记录的信息呢 ?要想查看所记录的日志 , 主要使用 SLOWLOG GET 或者 SLOWLOG GET number 命令,前者将会输出所有的 slow log ,最大长度取决于 slowlog-max-len 选项的值,而 SLOWLOG GET number 则只打印指定数量的日志。

查看当前日志数量: 使用SHOW LEN命令查看日志数量。

因为我是新安装的redis , 所以现在还没有耗时长日志 , 所以条数是 0,如果日志条数过多,还可以使用slowlog reset命令进行日志清空 。

为了方便演示 ,我将所有的执行命令都记录了下来,以第一条为例,

1、(integer) 1 # 唯一性(unique)的日志标识符

2、(integer) 1562075522 # 被记录命令的执行时间点,以 UNIX 时间戳格式表示

3、(integer) 93 # 查询执行时间,以微秒为单位

4、1."CONFIG" # 执行的命令,以数组的形式排列

5、"GET"

6、" " # 这里完整的命令是 CONFIG GET

慢查询功能可以有效地帮助我们找到Redis可能存在的瓶颈,但在实际使用过程中要注意以下几点:

来源:twt企业IT社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯