问题描述
Redis服务负载达到100%后的影响及有何优化方法
问题解答
Redis的负载达到100% 意味着 Redis 服务器繁忙,无法跟上请求,导致客户端发送出来的请求超时。
常规情况下有一下几种情况可以导致这个问题:
1) 请求量变大达到服务上限
2) 执行默写时间复杂度高的指令,如KEYS
3) Redis中存放的单个键的大小太大,官方文档建议键值大小为100KB
4) Redis服务的维护操作
当遇见以上问题,可以参考的优化方法有:
- 对于Key Size 比较大的场景,建议您适当调整maxmemory-reserved的配置。
- 通过对Redis 进行升级来提高Redis Server的性能来满足业务需求。
- 对ServerLoad 性能指标进行监控,当ServerLoad 达到80%时触发告警,提醒并手动介入调查Redis 的使用情况。
参考资料
管理 Azure Cache for Redis 的服务器负载 : https://learn.microsoft.com/zh-cn/azure/azure-cache-for-redis/cache-best-practices-server-load
排查 Azure Cache for Redis 服务器问题 : https://learn.microsoft.com/zh-cn/azure/azure-cache-for-redis/cache-troubleshoot-server#high-server-load