redis 慢日志

Redis慢日志用于记录响应时间超过预设阈值的命令,帮助定位系统慢操作。参数包括slowlog-log-slower-than(默认10000毫秒)和slowlog-max-len(默认无限制)。慢日志存储在内存列表,采用FIFO策略。可通过`slowlog get`获取,`slowlog len`查看长度,`slowlog reset`清理。建议根据业务需求调整阈值并定期保存日志以辅助问题排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis 慢日志

慢日志即是对用户请求响应慢,或执行慢的日志记录, 这里的慢是相对概念,慢即是指超过一定阈值,
当超过预设阈值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录到慢查询日志中,
在redis中也提供量类似于mysql的慢日志,慢日志可以帮助运维人员,开发人员定位系统慢操作。

参数设置:
与慢日志有关的参数主要涉及两个参数:

  1. slowlog-log-slower-than 预设阈值,它的单位是毫秒(1秒=1000000微秒)默认值是10000
  2. slowlog-max-len 最多存储多少条的慢日志记录

慢日志存储位置,实际上在内存中,redis使用一个列表来存储慢日志, slowlog-max-len 就是这个列表的
最大长度, 一个新的命令满足慢查询条件时被插入到这个列表中,当慢查询日志列表已处于其最大长度时,
最早插入的一个命令将从列表中移出 即 采用FIFO先进先出的方式

如果slowlog-log-slower-than=0 则会记录所有的命令, 而小于0的时候对于任何命令不做记录

配置修改:

  1. 修改启动配置文件
  2. config set 命令动态修改
config set slowlog-log-slower-than 20000
config set slowlog-max-len 500
config rewrite     (写入本地配置文件)
127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "128"
127.0.0.1:6379> 
127.0.0.1:6379> config get slowlog-log-slower-than
1) "slowlog-

127.0.0.1:6379> config set slowlog-max-len 500
OK
127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "500"

redis的慢日志存放在redis的内存列表中,但是并没有提供可以直接查询该列表的key

但是可以通过命令获取:
slowlog get [ n] n是指定条数

慢日志长度:
slowlog len

清理慢日志:
slowlog reset

127.0.0.1:6379> slowlog get
(empty list or set)
127.0.0.1:6379> slowlog len
(integer) 0

慢查询日志记录命令 id、发生时间戳、命令耗时、执行命令和参数

慢日志列表 slowlog-max-len 建议调大, 保留更多的慢日志操作,方便查询问题, redis对于长命令的操作也会做截断
操作,不会占用大量内存

slowlog-log-slower-than 值根据实际业务要求进行设置,由于redis是单线程操作,因此很好计算
例如:
设置1毫秒, 如果命令操作大于1毫秒, 那么每秒响应小于1000,即ops不到1000

慢查询记录的是命令执行时间,对于网络传输延迟,命令排队执行时间,并不包含,因此客服端发起执行到获取结果,
会大于执行时间, 慢查询会导致其他命令注射,可能造成超时, 影响应用响应时间,严重的时候可能造成应用故障

慢查询采用FIFO, 保存的记录有限,可以定时执行slow get命令,保存到文件中,方便后面查询问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值