Redis读性能慢问题排查和调优
- 1. 确认Redis是否真的变慢
-
- 1.1. 基准性能测试
- 1.2. 查看slowlog慢日志
- 2. Redis本身导致Redis变慢原因
-
- 2.1. 使用复杂度过高的命令
- 2.2. 操作bigkey(value很大)
- 2.3. 集中过期
- 2.4. 开启AOF
- 2.5. fork耗时严重
- 2.6. 碎片整理
- 2.7. 绑定CPU
- 3. 操作系统原因导致Redis变慢
-
- 3.1. 实例内存达到上限
- 3.2. 开启内存大页
- 3.3. 使用Swap
- 3.4. 网络带宽过载
- 3.5. 其他原因
https://heapdump.cn/article/3492222
https://www.cnblogs.com/hzzjj/p/16171854.html
http://kaito-kidd.com/2021/01/23/redis-slow-latency-analysis/
https://blog.****.net/weixin_42128977/article/details/127622146
https://cloud.tencent.com/developer/article/1683803
Redis速度是很快的,性能很高。但是Redis有时候会存在执行很慢、性能很差的情况。Redis是单线程操作,如果在Redis中执行耗时较长的操作,就会阻塞其他请求了。
Redis客户端执行一条命令,分为4部分:发送命令=>命令排队=> 命令执行=> 返回结果
1. 确认Redis是否真的变慢
若发现你的业务服务API响应延迟变长,首先需要排查服务内部,究竟是哪个环节拖慢了整个服务。比较高效的做法是,在服务内部集成链路追踪,也就是在服务访问外部依赖的出入口,记录下每次请求外部依赖的响应延时。若发现确实是操作 Redis 的这条链路耗时变长了,那么此刻你需要把焦点关注在业务服务到 Redis 这条链路上。
从你的业务服务到 Redis 这条链路变慢的原