• 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中
  • 相关阅读:
    最好的委托与事件详解一(转自张子阳博客)
    事务处理两种方式(转自一壶茶水)
    条目列表点击效果
    html可变大小字体
    udp群聊
    vbs隐藏运行bat之木马合体
    淘宝客网站的链接跳转形式
    工作之外八小时,用辛苦换幸福
    怕吃苦,吃苦一辈子
    外链建设的六个方法
  • 原文地址:https://www.cnblogs.com/weixuqin/p/10961386.html
Copyright © 2020-2023  润新知