Redis 慢查询相关配置

文若1年前技术文章393

一、查询生命周期

截屏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

三、使用经验

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


相关文章

LINUX 安全运维-用户

Linux提供了各种不同的用户和角色,而有些用户和角色,系统根本不需要,应该删除他们,因为帐号越多,系统就越不安全!黑客可能利用他们,威胁服务器的安全。删除不需要的用户:for i in {adm,l...

从Docker拉取镜像一直失败超时?这些解决方案帮你解决烦恼

设置国内源:提示:常规方案(作用不大)阿里云提供了镜像源:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 登录后你会获得一个专属...

大数据组件Apache NiFi

大数据组件Apache NiFi

概述NiFi是美国国家安全局开发并使用了8年的可视化数据集成产品,2014年NAS将其贡献给了Apache社区,2015年成为Apache顶级项目。是一个基于Web图形界面,通过拖拽、连接、配置完成基...

Hive3 on spark 集成

Hive3 on spark 集成

前置条件hadoop yarn环境正常oracle jdk 1.8版本1、spark2 下载准备https://archive.apache.org/dist/spark/spark-2.4.5/sp...

strace

一、简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内...

Dockerfile编写指南

Dockerfile编写指南

一、背景  在k8s提出抛弃docker,拥抱其他的cri插件的情况下,为什么还有这篇指南呢?首先Dockerfile作为容器打包的标准,已经存在了很多年了。其中的编写技巧到现在也是一直延续的,所以并...

发表评论    

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