Redis慢日志

SLOWLOG 是用来读取和重置 Redis 慢查询日志的命令,Redis 2.2.12 版本开始支持

1.Redis 慢查询日志概述

客户端从发送命令到获取返回结果经过了以下几个步骤:

1. 客户端发送命令

2. 该命令进入 Redis 队列排队等待执行

3. Redis 开始执行命令 - Redis 命令执行完成

4. 命令执行结果返回给客户端

Redis 慢查询日志统计的时间,只包含第三步的 Redis 命令从开始执行到执行完成的时间。

2.慢查询日志的两个配置项

slowlog-log-slower-than

  • Redis 慢查询日志的时间阈值,单位微妙。

  • 1) 值为正数,执行时间大于该值设置的微秒时才记录到慢日志中。默认 10000 微秒(0.01 秒)。

  • 2) 值为负数,禁用慢查询日志。

  • 3) 值为 0,所有命令都记录到慢日志中

slowlog-max-len

  • 慢查询日志长度,最小值为零。默认 128

  • 当记录新命令并且当前慢日志已达到最大长度时,最旧的一条记录将被删除。

可以通过编辑 redis.conf 或者使用 CONFIG GET/SET 命令来进行配置

127.0.0.1:6379> config get slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "10000"
127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "128"
127.0.0.1:6379> config set slowlog-log-slower-than 0
OK
127.0.0.1:6379> config set slowlog-max-len 10
OK

3.读取慢日志记录

慢查询日志是记录在内存中的,记录速度非常快。

可以使用 SLOWLOG GET N 命令来读取慢日志,查询最近的 N 条记录。

该命令默认请求条数为 10 ,即 SLOWLOG GET 等价于 SLOWLOG GET 10

参数为 -1 时会获取整个慢日志信息。

日志输出格式

127.0.0.1:6379> slowlog get 2
1) 1) (integer) 13
   2) (integer) 1629523068
   3) (integer) 6
   4) 1) "get"
      2) "a"
   5) "127.0.0.1:43942"
   6) "lnrcoder"

1)每条日志唯一标识符

2)命令执行时的时间戳

3)命令执行消耗的时间,单位微秒

4)执行的命令数组

5)客户端地址和端口 (仅 4.0 以上版本支持)

6)客户端名称 (仅 4.0 以上版本支持,默认名称为空,需要通过 client setname 命令进行设置)

4.查询慢日志记录长度

使用 SLOWLOG LEN 可以获取慢日志记录的长度。

127.0.0.1:6379> slowlog len
(integer) 2

5.重置慢日志

使用 SLOWLOG RESET 命令用来重置慢日志。使用该命令进行日志重置后,信息将永远丢失。

127.0.0.1:6379> slowlog len
(integer) 10
127.0.0.1:6379> slowlog reset
OK
127.0.0.1:6379> slowlog len
(integer) 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/503423.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

飞天使-k8s知识点28-kubernetes散装知识点5-helm安装ingress

文章目录 安装helm添加仓库下载包配置创建命名空间安装 安装helm https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gztar -xf helm-v3.2.3-linux-amd64.tar.gzcd linux-amd64mv helm /usr/local/bin修改/etc/profile 文件,修改里面内容,然后重新启用export PATH$P…

嵌入式数据库-Sqlite3

阅读引言: 本文将会从环境sqlite3的安装、数据库的基础知识、sqlite3命令、以及sqlite的sql语句最后还有一个完整的代码实例, 相信仔细学习完这篇内容之后大家一定能有所收获。 目录 一、数据库的基础知识 1.数据库的基本概念 2.常用数据库 3.嵌入式…

在A中删除既在B表中出现又在C表中出现的元素

方法一(感觉有点取巧,不太推荐,但是实现简单): 算法思想:保留La的头节点,并用pcur指针指向La链中的第一个结点,通过pcur指针遍历La中的每一个元素,并判断该元素是否在Lb和Lc链中出现…

优化选址问题 | 基于帝国企鹅算法求解工厂-中心-需求点三级选址问题含Matlab源码

目录 问题代码问题 "帝国企鹅算法"并不是一个广为人知的优化算法,可能是一个特定领域或者特定情境下提出的方法。不过,对于工厂-中心-需求点三级选址问题,它可能是一种启发式优化方法,用于在多个候选位置中选择最优的工厂、中心和需求点位置。 这类问题通常涉及…

HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程

HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程 📍相关篇《STM32 软件I2C方式读取AS5600磁编码器获取角度例程》 ✨stm32使用硬件I2C去读取角度数据,通过STM32CubeMX工具配置工程,读取角度数据,只需要调用一个函数&#xf…

css3之动画animation

动画animation 一.优点二.定义和使用三.动画序列和解释四.常见属性及解释五.简写(名字和时间不能省略)(持续时间在何时开始的时间前)(简写中无animation-play-state)六.例子1.大数据热点图2.奔跑的熊大(一个…

大模型与数据分析:探索Text-to-SQL

当今大模型如此火热,作为一名数据同学,持续在关注LLM是如何应用在数据分析中的,也关注到很多公司推出了AI数智助手的产品,比如火山引擎数智平台VeDI—AI助手、 Kyligence Copilot AI数智助理、ThoughtSpot等,通过接入人…

同一个主机配置多个SSH key

使用git时,我们可能一个git客户端使用多个git服务器,比如github,自建gitlab,gitee,为了防止提交混乱,所以需要一一对应生成公私钥。 第一步: 使用ssh-keygen生成多对密钥对,比如&…

深入理解SQLite:存储引擎、索引、事务与锁

文章目录 一、存储引擎二、索引的数据结构和类型2.1 B-Tree2.2 其他类型的索引2.3 小结 三、事务处理中的一致性问题3.1 脏读(Dirty Read)3.2 不可重复读(Non-repeatable Read)3.3 幻读(Phantom Read)3.4 小…

python实战之进阶篇(二)

一. python中的继承 二. 多继承 如果一个类继承了多个类, 多个父类中有相同的方法, 相同的方法则按照继承的顺序,继承第一个父类的 如果子类重写父类中继承的方法, 则子类中重写的方法生效 三. 继承与多态

数据结构03:栈、队列和数组 栈习题01[C++]

考研笔记整理~🥝🥝 之前的博文链接在此:数据结构03:栈、队列和数组_-CSDN博客~🥝🥝 本篇作为链表的代码补充,供小伙伴们参考~🥝🥝 第1版:王道书的课后习题…

ubuntu22.04@Jetson Orin Nano安装配置VNC服务端

ubuntu22.04Jetson Orin Nano安装&配置VNC服务端 1. 源由2. 环境3. VNC安装Step 1: update and install xserver-xorg-video-dummyStep 2: Create config for dummy virtual displayStep3: Add the following contents in xorg.conf.dummyStep 4: Update /etc/X11/xorg.con…

使用Flink实现MySQL到Kafka的数据流转换

使用Flink实现MySQL到Kafka的数据流转换 本篇博客将介绍如何使用Flink将数据从MySQL数据库实时传输到Kafka,这是一个常见的用例,适用于需要实时数据connector的场景。 环境准备 在开始之前,确保你的环境中已经安装了以下软件:…

再次加深理解Java中的并发编程

目录 一、线程、进程、程序 二、线程状态 三、线程的七大参数 四、lock与synchronized锁机制 一)、lock与synchronized锁区别 二)、synchronized锁原理 三)、Lock锁原理 五、synchronized锁升级原理 一)、锁升级基础知识 …

超文本传输协议HTTP

HTTP协议 在网络通信中,我们可以自己进行定制协议,但是也有许多已经十分成熟的应用层协议,比如我们下面说的HTTP协议。 HTTP协议简介 HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议,是一…

JAVAEE之网络编程

1.网络编程 网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。 当然,我们只要满足进程不同就行; 所以即便是同一个主机,只要是不同进程&am…

算法学习——LeetCode力扣图论篇1

算法学习——LeetCode力扣图论篇1 797. 所有可能的路径 797. 所有可能的路径 - 力扣(LeetCode) 描述 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特…

elementui 导航菜单栏和Breadcrumb 面包屑关联

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 文章目录 系列文章目录前言一、elementui 导航菜单栏和Breadcrumb 面包屑怎么关联?二、实现效果三、实现步骤1.本项目演示布局2.添加面包屑2.实现breadcrumbName方法3.监听方法4.路由指配5.路由配置…

【C语言】Infiniband驱动mlx4_reset

一、注释 这个 mlx4_reset 函数负责重置 Mellanox 设备。它保存了设备的 PCI 头信息,然后重置了设备,之后还原保存的 PCI 头信息。请注意,该函数是用英文注释的,下面提供中文注释的版本。以下是该函数的流程: 1. 为保…

springboot项目学习-瑞吉外卖(4)续

1.任务 菜品的添加功能(涉及到两张表的数据添加) 2.菜品添加 功能页面如上,该页面有两个注意点 菜品分类:点击菜品分类后,会展示当前已有菜品:这个功能的实现要从category表里查询数据,然后再做展示口味做法配置&#…