更新时间:2022-04-22 GMT+08:00
Redis实例内存使用率高问题排查和解决
问题现象
Redis可提供高效的数据库服务,当内存不足时,可能导致Key频繁被逐出、响应时间上升、QPS(每秒访问次数)不稳定等问题,进而影响业务运行。由于Redis自身运行机制(主从同步、延迟释放等),内存占用率可能出现略微超过100%的情况,此为正常情况,此时内存已经写满,用户需要考虑扩容,或者清理一些无用的数据。通常情况下,当内存使用率超过95%时需要及时关注。
排查原因
处理措施
- 提前发现大key、热key。
- DCS控制台提供了大Key和热Key的分析功能,你可参考分析Redis实例大Key和热Key减少大key和热key。
- string类型控制在10KB以内,hash、list、set、zset元素尽量不超过5000。
- key的命名前缀为业务缩写,禁止包含特殊字符(比如空格、换行、单双引号以及其他转义字符)。
- Redis事务功能较弱,不建议过多使用。
- 短连接性能差,推荐使用带有连接池的客户端。
- 如果只是用于数据缓存,容忍数据丢失,建议关闭持久化。
