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 秒)。
    1. 值为负数,禁用慢查询日志。
    1. 值为 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 以

复制代码
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

上版本支持,默认名称为空,需要通过 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
相关推荐
HackTwoHub4 小时前
AI大模型网关存在SQL注入、附 POC 复现、影响版本LiteLLM 1.81.16~1.83.7(CVE-2026-42208)
数据库·人工智能·sql·网络安全·系统安全·网络攻击模型·安全架构
l1t4 小时前
DeepSeek总结的DuckLake构建基于 SQL 原生表格式的下一代数据湖仓
数据库·sql
KmSH8umpK4 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第八篇
数据库·redis·分布式
TDengine (老段)4 小时前
从施工监测到运营预警,桥科院用 TDengine 提升桥梁数据管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
callJJ5 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
S1998_1997111609•X6 小时前
论mysql国盾shell-sfa犯罪行为集团下的分项工程及反向注入原理尐深度纳米算法下的鐌檵鄐鉎行为
网络·数据库·网络协议·百度·开闭原则
KmSH8umpK6 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第七篇
数据库·redis·分布式
0xDevNull7 小时前
Linux 中 Nginx 代理 Redis 的详细教程
redis·后端
倒霉蛋小马7 小时前
【Redis】什么是缓存穿透?
缓存
BU摆烂会噶7 小时前
【LangGraph】持久化实现的三大能力——时间旅行
数据库·人工智能·python·postgresql·langchain