zoukankan      html  css  js  c++  java
  • redis 学习(10)-- redis 慢查询

    redis 慢查询

    什么是慢查询

    MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里。

    redis 的生命周期

    1. 客户端向Redis服务器发送命令
    2. 命令请求在请求队列中排队等待处理
    3. 执行命令
    4. 返回命令结果

    redis 慢查询

    • 慢查询发生在生命周期的第三阶段,是指仅仅执行命令阶段比较慢被称为慢查询。
    • 客户端超时不一定是慢查询,但是慢查询时是客户端超时的一个可能因素。

    redis 慢查询相关配置

    1. slowlog-max-len

    它决定了慢查询日志最多能保存多少条日志,slow log本身是一个内存中的FIFO队列,当队列大小超过slowlog-max-len时,最旧的一条日志将被删除,而最新的一条日志加入到slow log中。

    • 默认值:128
    • 支持动态配置
    2. slowlog-log-slower-than

    它决定要对执行时间大于多少微秒(microsecond , 1秒=1,000,000 微妙)的查询进行记录

    • 默认值:10000
    • slowlog-log-slower-than = 0 ,记录所有命令
    • slowlog-log-slower-than < 0 , 不记录任何命令
    • 支持动态配置

    慢查询配置方法

    1. 默认值
    • config get slowlog-max-len = 128
    • config get slowlog-log-slower-than = 10000
    2. 修改配置文件重启
    3. 动态配置
    • config set slowlog-max-len 1000
    • config set slowlog-log-slower-than 1000

    慢查询相关命令

    1. slowlog get [n]

    含义:获取慢查询列表中的慢查询信息

    2. slowlog len

    含义:获取慢查询队列长度

    slowlog reset

    含义:清空慢查询队列

    慢查询运维经验

    • slowlog-max-len 不要设置过大,默认10ms,通常设置1ms
      • 因为Redis的qps是万级别的,即每秒应能执行10000次请求
      • 当一条命令执行1ms时,那每秒只能执行1000次请求
    • slowlog-log-slower-than 不要设置地过小,通常设置1000左右
    • 需要理解命令的生命周期
    • 定期持久化慢查询
      • 因为慢查询只存储于内存中,一宕机慢查询数据就会丢失
      • 通过定期slowlog get将慢查询数据转存到MySQL或者ES中
  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/weixuqin/p/10961386.html
Copyright © 2011-2022 走看看