zoukankan      html  css  js  c++  java
  • Redis慢日志

    简介

    慢日志(Slow log) 是 Redis 用来记录命令执行时间的日志系统。例如线上Redis突然出现堵塞,使用该命令可以查询Redis服务器耗时的命令列表,快速定位问题。

    由于慢日志是存储于内存的,读写速度非常快,不用担心因为使用慢日志而造成性能问题。

    可用版本: >= 2.2.12
    时间复杂度: O(1)

    如何配置

    2种配置方法。第一种是修改redis.conf配置文件,第二种则是使用CONFIG SET动态修改。

    需要配置的参数:

    • slowlog-log-slower-than 配置对执行时间大于多少微秒(microsecond, 1秒=10^6微秒) 的命令进行记录。线上可以设置为1000微秒,也就是1毫秒。
    • slowlog-max-len 设置最大考验记录多少条记录。 slow log 本身是一个先进先出(FIFO) 队列,当队列大小超过该配置的值时,最旧的一条日志将被删除。线上可以设置为1000以上。

    示例:

    CONFIG SET slowlog-log-slower-than 10000
    CONFIG SET slowlog-max-len 128
    

    查询是否生效,可以使用CONFIG GET命令:

    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"
    

    查询慢日志

    查询很简单,使用SLOWLOG GET命令:

    127.0.0.1:6379> SLOWLOG GET 2
    1) 1) (integer) 207
       2) (integer) 1582875104
       3) (integer) 98977
       4) 1) "SPOP"
          2) "wt_pre_room_wxids"
    2) 1) (integer) 206
       2) (integer) 1582875103
       3) (integer) 501649
       4) 1) "SPOP"
          2) "wt_bind_user_wxids"
    

    该命令如果不给参数,则打印出所有慢查询命令。

    现在按结果集顺序讲解一下输出的结果含义:

      1. 唯一性(unique)的日志标识符。日志的唯一 id 只有在 Redis 服务器重启的时候才会重置,这样可以避免对日志的重复处理。
      1. 被记录命令的执行时间点,以 UNIX 时间戳格式表示
      1. 查询执行时间,单位为微秒
      1. 执行的命令,以数组的形式排列

    如果仅需要知道当前慢查询的数量,则使用命令SLOWLOG LEN即可:

    127.0.0.1:6379> SLOWLOG LEN
    (integer) 128
    

    使用命令 SLOWLOG RESET 可以清空 慢日志 :

    127.0.0.1:6379> SLOWLOG RESET
    OK
    

    提示:慢查询较多的情况下,可能会丢失部分慢查询命令,可以定期执行 SLOWLOG GET命令将慢查询日志持久化到其他存储(例如ES)中。然后制作可视化界面查询。

    参考

    1、SLOWLOG subcommand [argument] — Redis 命令参考
    http://redisdoc.com/debug/slowlog.html

    2、Redis-慢查询分析-布拉君君-51CTO博客
    https://blog.51cto.com/5148737/1976757

  • 相关阅读:
    大话设计模式之代理模式
    大话设计模式之装饰者模式
    策略模式与简单工厂模式
    一个简单的使用Quartz和Oozie调度作业给大数据计算平台执行
    oozie JAVA Client 编程提交作业
    HashMap分析及散列的冲突处理
    cmp排序hdoj 1106排序
    定义member【C++】cstddef中4个定义
    目录启动CXF启动报告LinkageError异常以及Java的endorsed机制
    算法代码[置顶] 机器学习实战之KNN算法详解
  • 原文地址:https://www.cnblogs.com/52fhy/p/12404698.html
Copyright © 2011-2022 走看看