Redis 慢查询相关配置

文若2年前技术文章708

一、查询生命周期

截屏2023-06-09 14.51.13.png

一条查询的生命周期:

  1. 发送命令

  2. 命令排队

  3. 执行命令

  4. 返回结果

Redis 慢日志只统计 “执行命令” 步骤 3 的耗时,所以没有慢查询并不代表客户端没有超时问题。

二、慢日志配置参数

慢日志相关的参数有两个:

slowlog-log-slower-than 慢日志的阈值,单位是 微秒 (1秒=1000毫秒=1000000微秒)默认值 10000 (10 毫秒) 如果设置为 0 将会记录所有的命令,如果 < 0 则任何命令都不会记录。

slowlog-max-len Redis 的慢日志实际上是存在在列表中的,该参数即为列表的长度,可以存储多少条命令。 先进先出队列,如果慢查询较多的话,可能会丢失一部分,所以需要按照需求设定该值,或者搭建慢查询分析平台。

慢日志动态修改:

config set slowlog-log-slower-than 10000
config set slowlog-max-len 128
config rewrite

获取慢查询数量:

slowlog len
127.0.0.1:6379> slowlog len
(integer) 7

获取慢查询日志:

# n 指一次慢日志的数量
slowlog get n
127.0.0.1:6379> slowlog get 1
1) 1) (integer) 6
  2) (integer) 1635833786
  3) (integer) 41971
  4) 1) "keys"
     2) "*"
  5) "127.0.0.1:33262"
  6) ""

清空慢日志队列:

slowlog reset

三、使用经验

慢查询只记录命令执行时间,并不包括命令排队和网络传输时间。因此客户端执行命令的时间会大于命令实际执行时间。因为命令执行排队机制,慢查询会导致其他命令级联阻塞,因此当客户端出现请求超时,需要检查该时间点是否有对应的慢查询,从而分析出是否为慢查询导致的命令级联阻塞。


相关文章

rabbitmq-监控告警

rabbitmq-监控告警

插件安装rabbitmq_prometheus这个插件包含在RabbitMQ3.9.x版本中。与所有的插件一样,必须启用它才能使用;在node1,node2,node3 三台机器上执行如下命令:rab...

datahub安装部署

datahub安装部署

背景:由于某客户需要建立sparksql的血缘关系,于是乎提出datahub,由于网上关于datahub资料较少,因此这里做以记录datahub作为一个元数据管理平台,他可以对数据资产进行有效的组织,...

Ambari Hive 创建函数无权限

Ambari Hive 创建函数无权限

1、创建udf函数参考文档:https://blog.csdn.net/helloxiaozhe/article/details/102498567如果已经编写好,请使用自己的。如果没有请参考以上链接...

CDP实操--动态启停服务

以yarn nodemanager 为例获取role yarn nodemanager:curl -u admin:admin 'http://172.16.106.151:7180/api/v1/c...

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(4)

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(4)

 6.0 nginx 配置文件结构        6.1 先了解以下配置文件的结构Nginx 文件结构:      &n...

Redis 大 key

1、bigkeysRedis提供了 bigkeys 参数能够使 redis-cli 以遍历的方式分析 Redis 实例中的所有 Key ,并返回 Key 的整体统计信息与每个数据类型中 Top1 的大...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。