redis慢查询

   很多存储系统(Mysql)提供慢查询日志帮助开发和运维人员定位系统存在的慢操作,慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阈值时,就把这条命令的相关信息记录下来,Redis同样提供类似的功能。


image.png

Redis客户端执行一条命令分为4个部分,如下:

  1. 发送命令
  2. 命令排队
  3. 命令执行
  4. 返回结果
      慢查询只统计命令执行的时间,因此,没有慢查询并不代表客户端没有超时时间。Redis提供了slowlog-log-slower-than(毫秒)和slowlog-max-len,前者表示预设的阈值,当一条命令的执行时间超过阈值时,它将被记录到慢查询日志中去。而slowlog-max-len只说明了慢查询日志最多存储多少条,并没有说明日志存放在哪,实际上Redis使用了一个列表来存储慢查询日志,slowlog-max-len表示列表的长度,当列表长度超过该值就把列表第一天数据出列。

获取慢查询日志

slowlog  get  [n]  // n 指定条数
slowlog len // 日志长度
slowlog reset // 重置, 实际是清理列表
image.png

小结

  • 慢查询只记录命令执行的时间,并不包括命令排队和网络传输时间,客户端执行命令的时间会多于命令实际执行时间。
  • 慢查询日志实质上是一个先进先出的队列,如果慢查询比较多,可以定期执行slow get命令将慢查询日志持久化到其他存储中去。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Redis 客户端执行命令分四个部分: 发送命令 命令排队 命令执行 返回结果 Redis 的慢查询只统计步奏3)...
    非典型程序员阅读 6,533评论 0 2
  • 通过这这篇文章你会知道如下内容: 慢查询是什么?如何配置? 如何多次间隔的执行命令?如何测试redis客户端到网络...
    打伞的Fish阅读 3,199评论 0 2
  • 慢查询对于Redis客户端执行命令的生命周期,我们可以认为是下图所示;生命周期.png当执行命令的时间超过了我们设...
    黄金矿工00七阅读 1,598评论 0 1
  • 前言 慢查询,大家可能已经接触到了MySQL的慢查询。我们配置一个时间,如果查询时间超过了我们设置的时间,我们就认...
    番薯IT阅读 8,514评论 0 1
  • 一、慢查询说明 慢查询日志, 是系统记录那些超过指定查询时间的日志,查询时间指的是单个命令占用CPU处理时间。不包...
    FantJ阅读 3,764评论 0 3

友情链接更多精彩内容