首页 > 其他 > 详细

redis 学习(10)-- redis 慢查询

时间:2019-06-01 23:50:32      阅读:175      评论:0      收藏:0      [点我收藏+]

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中

redis 学习(10)-- redis 慢查询

原文:https://www.cnblogs.com/weixuqin/p/10961386.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!