redis实战(9):Redis 高负载排查记录

本文分享了一次Redis性能故障的排查经历,包括前端页面响应慢、接口返回慢及Redis调用严重超时等问题,通过环境检查和Redis命令统计信息定位问题原因,并给出了解决方案。

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

钉钉收到同事反馈:突然大量用户反馈进入网页很慢,登录服务器一看,Redis调用时间严重超时。太可悲,高速的缓存反而变成了短板,由于数据一直没有返回,导致了请求响应变慢。


1 现象

  1. 前端页面响应慢
  2. 接口返回慢
  3. redis调用严重超时

2 排查

2.1 环境检查
  1. 服务器的 CPU 负载
  2. 内存
  3. 网络输入输出
  4. QPS
  5. 连接数

上面指标查看方式很多,linux命令行、外部软件(Grafana,zabbix)或者redis的info命令都可以查看,不具体演示


2.2 redis检查
  1. 通过 info commandstats 可以查看 Redis 命令统计信息

生产环境不方便截图,所以截图本地环境演示命令
在这里插入图片描述

命令结果含义如下:

cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX
//cmdstat_XXX: xxx 命令
//calls: 调用次数
//usec: 耗费CPU时间
//usec_per_call:每个命令平均耗费CPU(单位为微秒)

  1. 通过 slowlog 命令查看慢命令

默认超过 10ms 就会被记录到日志,只会记录其命令执行的时间,不包含 IO 往返操作,也不记录单由网络延迟引起的响应慢

SLOWLOG GET或者 SLOWLOG GET number命令,前者打印所有 slow log ,最大长度取决于 slowlog-max-len 选项的值,而 SLOWLOG GET number 则只打印指定数量的日志。

xxxxx> slowlog get 10
 3) 1) (integer) 411           
    2) (integer) 1545386469     
    3) (integer) 232663          
    4) 1) "keys"              
       2) "test:*"

命令的结果含义

1=日志的唯一标识符
2=命令的执行时间点,以UNIX时间戳表示
3=查询命令执行时间,以微妙为单位
4=执行的命令,以数组的形式排列。完整的命令是 keys test:*

所以通过这些参数,基本可以确定,是突然有大量的keys *命令导致CPU负载升高,导致响应延迟

3 处理

  1. 禁用

禁用的具体做法是,修改服务器的配置文件redis.conf,在SECURITY这一项中,我们新增以下命令:

rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""
rename-command KEYS     ""
  1. 重命名
    修改服务器的配置文件redis.conf,在SECURITY这一项中,我们新增以下命令,重启服务器后,则需要用新命令来执行操作,否则服务器会报错 unknown command。
rename-command FLUSHALL joYAPNXRPmcarcR4ZDgC81TbdkSmLAzRPmcarcR
rename-command FLUSHDB  qf69aZbLAX3cf3ednHM3SOlbpH71yEXLAX3cf3e
rename-command CONFIG   FRaqbC8wSA1XvpFVjCRGryWtIIZS2TRvpFVjCRG
rename-command KEYS     eIiGXix4A2DreBBsQwY6YHkidcDjoYA2DreBBsQ

修改配置文件
在这里插入图片描述

重启redis-server后

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

water___Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值