• 【Redis】Redis慢查询


    Redis慢查询介绍

      了解Redis慢查询前先看看Redis客户端执行一个命令的生命周期,下图就是Redis查询生命周期流程图。

      

       一.步骤

        1. 客户端发送命令。

        2. Redis服务端接收到命令,因为Redis是单线程,所以这里是需要排队的。

        3. Redis服务端执行命令。

        4. Redis服务端将执行命令后的结构通过网络在返回给客户端。

      二.慢查询发生的阶段

          1. 慢查询发生在上面第三个阶段,主要是在命令本身执行的阶段,比如执行keys *,如果Redis存在很多key的时候,那么执行这种查询很大数据量的时候就会很慢。

        2. 客户端超时不一定是慢查询,比如网络不好,但是慢查询是客户端超时的一个可能因素。

    Redis慢查询分析配置

      Redis慢查询是记录在一个先进先出的队列中,这个队列是用列表来记录慢查询的命令,这个队列是固定长度的,并且Redis在重启后这个队列会被清空。

      Redis慢查询相关的配置有两个  slowlog-log-slower-thanslowlog-max-len
      1. slowlog-max-len:这个参数用来设置存储慢查询记录列表的大小,默认值为 128,当该列表满了时,如果有新的记录进来,那么 Redis 会把队最旧的记录清理掉,然后存储新的记录。在生产环境我们可以适当调大,比如调成 1000,这样就可以缓冲更多的记录,方便故障的排查。配置方法和 slowlog-log-slower-than 类似,可以在配置文件中指定,也可以在命令行执行 config命令来查看和设置:

    查看

    127.0.0.1:6379> config get slowlog-max-len
    1) "slowlog-max-len"
    2) "128"

    设置

    config set slowlog-log-slower-than 10000

      2. slowlog-log-slower-than:用来控制慢查询的阈值(该值的单位为微秒),所有执行时间超过该值的命令都会被记录下来。默认值是10000,如果设置为 0,那么所有的记录都会被记录下来,如果设置为小于 0 的值,那么对于任何命令都不会记录,即关闭了慢查询。可以通过在配置文件中设置,也可以在命令行执行 config命令来查看和设置:

    查看

    127.0.0.1:6379> config get slowlog-log-slower-than
    1) "slowlog-log-slower-than"
    2) "10000"

    设置

    config set slowlog-max-len 1000

    查看慢查询日志

      我们可以使用Redis 提供了一组命令来查询慢查询日志

      slowlog get [n]:获取慢查询队列

        slowlog len :获取慢查询队列长度

          slowlog reset :清空慢查询队列

    慢查询相关参数设置建议

      1. slowlog-max-len 设置不要过大,默认10ms,通常建议设置1ms,这个是根据具体QPS来设置的。

      2. slowlog-log-slower-than 不要设置过小,默认是128,通常设置为1000左右。由于Redis慢查询记录是存放在内存中,重启就清空,所以可以将慢查询记录持久化到磁盘上可以定期分析。

  • 相关阅读:
    springcloud组件梳理之hystrix
    springcloud组件梳理之Feign
    React Native startReactApplication 方法简析
    FREE OFFER
    修改docker默认目录
    使用云效进行自动化构建和部署
    Git同时推送到多个远端仓库【转】
    OneNote出现we're sorry. OneNote is cleanning up from the last time it was open.
    【数学基础】数据科学的概率基础
    【摄影后期基础教程】Lightroom_秋凉视频教程
  • 原文地址:https://www.cnblogs.com/songgj/p/9313841.html
Copyright © 2020-2023  润新知