我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis-慢查询分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis-慢查询分析

一.慢查询日志

慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详细信息)记录下来。Redis客户端一条名利分为如下四部分执行:

 Redis-慢查询分析


需要注意的是,慢查询日志只是统计步骤3)执行命令的时间,所以慢查询并不代表客户端没有超时问题。

二. 慢查询的配置参数

2.1 慢查询的预设阀值  slowlog-log-slower-than

slowlog-log-slower-than参数就是预设阀值,单位是微秒,默认值是1000,如果一条命令的执行时间超过10000微妙,那么它将被记录在慢查询日志中。

如果slowlog-log-slower-than的值是0,则会记录所有命令。

如果slowlog-log-slower-than的值小于0,则任何命令都不会记录日志。

 

2.2 慢查询日志的长度slowlog-max-len

slowlog-max-len只是说明了慢查询日志最多存储多少条。Redis使用一个列表来存储慢查询日志,showlog-max-len就是列表的最大长度。当慢查询日志已经到达列表的最大长度时,又有慢查询日志要进入列表,则最早插入列表的日志将会被移出列表,新日志被插入列表的末尾。

 

三 慢查询日志的组成

慢查询日志由以下四个属性组成:标识ID,发生时间戳,命令耗时,执行命令和参数

四 慢查询日志的访问和管理

4.1 获取慢查询日志slowlog get [n]

命令:slowlog get [N]

选型:N,可选,代表获取的日志条数

例如:showlog get 5

返回:

1) 1) (integer) 1

2) (integer) 1499338521

    3) (integer) 10101

    4) 1) "SETEX"

     2) "com.yonyou.iuap.portal.integration.ticket.entity.Ticket/AhZwvMNspZnYEy3Zs5BhdA"

     3) "3600"

     4)"{\"id\":\"AhZwvMNspZnYEy3Zs5BhdA\",\"usercode\":\"b540903b584144d38a365a1fc593ee68\",\"expire\":1499342121122,\"extendAttributes\":{}}"

2)1) (integer) 0

   2)(integer) 1499251333

   3)(integer) 42683

   4)1) "HGETALL"

     2) "IUAP_SESSION_USER:b540903b584144d38a365a1fc593ee68"

4.2 获取慢查询日志列表的当前长度slowlog len

命令:slowlog len

返回:慢日志列表的当前长度

例如:slowlog len

返回:2

 

4.3 慢查询日志重置slowlog reset

慢查询日志重置实际是对列表做清理操作。

命令:slowlog reset

例如:slowlog reset

     slowlog len

返回: 0

 

五 慢查询日志最佳实践

(1)slowlog-max-len的设置建议

线上环境建议调大慢查询日志的列表,记录慢查询日志时Redis会对长命令做截断操作,并不会占用大量内存。增大慢查询列表可以减缓慢查询被剔除出列表的可能性。例如线上可以设置为1000以上。

(2)slowlog-log-lower-than的设置建议

需要根据redis的并发量调整该值。由于redis采用单线程响应名利,对于高流量的场景,如果执行命令的时间在1毫秒以上,那么redis最多可支撑OPS(每秒操作次数)不到1000,因此高OPS场景的REDIS建议设置为1毫秒。

(3)慢查询只记录命令执行时间,并不包括命令排队时间和网络传输时间。因此客户端

命令的执行时间要大于redis服务器实际执行命令的时间。因为命令执行排队极致,慢查询会导致命令级联阻塞,因此当客户端出现请求超时,需要检查该时间点是否有对应的慢查询,从而分析是否因为慢查询导致的命令级联阻塞

(4)慢查询日志是一个先进先出队列,慢查询较多的情况下,可能会丢失部分慢查询命令,可以定期执行slow get命令将慢查询日志持久化到其他存储中。然后制作可视化界面查询。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis-慢查询分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis慢查询日志及慢查询分析详解

这篇文章主要为大家介绍了Redis慢查询日志及慢查询分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-28

MySQL慢查询如何分析

MySQL慢查询日志是分析数据库性能问题的重要工具。当MySQL执行一个查询语句时,如果该查询语句的执行时间超过了预设的阈值(默认为1秒),MySQL就会将其记录到慢查询日志中。通过分析慢查询日志,我们可以找出性能瓶颈,优化SQL语句,提高
MySQL慢查询如何分析
2024-10-20

MySQL慢查询日志分析

MySQL慢查询日志是MySQL服务器用来记录慢查询操作的一种日志打开慢查询日志功能:在MySQL配置文件(例如:my.cnf或my.ini)中,添加以下配置选项:slow_query_log = "1"slow_query_log_
MySQL慢查询日志分析
2024-10-20

一篇文章快速搞懂Redis的慢查询分析

当Redis客户端出现请求超时的时候,需要检查该时间点是否有慢查询,从而分析出由于慢查询导致的命令级联阻塞。 什么是慢查询?慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我们了解一下Redis命令执行的整个过程:发送命令命令排队命令
一篇文章快速搞懂Redis的慢查询分析
2017-09-13

MySQL的慢查询实例分析

这篇文章主要介绍“MySQL的慢查询实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL的慢查询实例分析”文章能帮助大家解决问题。1 概念MySQL的慢查询,全名是慢查询日志,是MySQ
2023-06-28

在Linux下开启mysql慢查询,分析查询语句

一,为什么要开启这个查询呢?数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了。mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找
2022-05-26

Linux下MySQL的慢查询日志分析

MySQL的慢查询日志是记录MySQL执行时间超过指定阈值的查询语句的日志,在Linux下可以通过以下步骤来进行慢查询日志的分析:打开MySQL配置文件my.cnf,找到slow_query_log参数,将其设置为ON,并设置slow_qu
Linux下MySQL的慢查询日志分析
2024-08-16

MySQL常用慢查询分析工具详解

目录引言1、调优工具mysqldumpslow1.1调优工具常用设置1.2 调优工具常用命令1.3 慢日志文件分析2、 调优工具show profile引言在日常的业务开发中MySQL 出现慢查询是很常见的大部分情况下会分为两种情况:
2022-08-14

编程热搜

目录