当前位置: 首页 > news >正文

Redis 内存问题排查与治理指南

本文系统整理 Redis 内存排查的完整流程,涵盖最大内存配置、淘汰策略、大 Key 定位、内存碎片分析以及在线碎片整理。


一、查看 Redis 最大内存(maxmemory)配置

1️⃣ 查询最大内存限制

CONFIG GET maxmemory

返回说明

  • 返回值单位:字节(Byte)
  • 示例:
1) "maxmemory"
2) "8589934592"

表示 Redis 最大可使用内存为 8GB

特殊情况说明

返回值 含义
0 不限制内存(默认值,⚠️ 生产环境不推荐)

二、查看 Redis 内存淘汰策略(maxmemory-policy)

1️⃣ 查询当前淘汰策略

CONFIG GET maxmemory-policy

2️⃣ 常见淘汰策略说明

策略 说明
noeviction 默认策略,内存满后写入直接报错
allkeys-lru 对所有 key 按 LRU 算法淘汰(常用)
volatile-ttl 仅对设置了 TTL 的 key,优先淘汰快过期的

三、定位大 Key(BigKey)

大 Key 是 Redis 内存问题和性能问题的常见根源。

1️⃣ 使用 redis-cli 内置工具(推荐)

redis-cli --bigkeys

2️⃣ 工具说明

  • 使用 SCAN 方式遍历 key
  • 不会阻塞 Redis
  • 自动按数据类型统计最大 key

3️⃣ 示例输出

Biggest string found 'user:token:1001' has 512000 bytes
Biggest hash found 'user:info:hash:1001' has 4200 fields

4️⃣ 结果解读

  • string:关注 value 字节大小
  • hash / list / set / zset:关注元素或 field 数量

四、查看 Redis 内存使用与碎片率

1️⃣ 查看内存信息

INFO MEMORY

2️⃣ 关键字段说明

used_memory:104857600
used_memory_rss:157286400
mem_fragmentation_ratio:1.50
mem_fragmentation_bytes:52428800
字段 含义
used_memory Redis 实际使用内存
used_memory_rss 操作系统分配给 Redis 的内存
mem_fragmentation_ratio 内存碎片率
mem_fragmentation_bytes 内存碎片大小

3️⃣ 如何判断是否存在内存碎片问题?

碎片率 状态说明
< 1.1 正常
1.1 ~ 1.5 可接受
> 1.5 ⚠️ 碎片偏高
> 2.0 ❌ 严重问题,需处理

五、Redis 在线内存碎片整理(Redis 4.0+)

1️⃣ 查看是否开启碎片整理

CONFIG GET activedefrag

2️⃣ 开启在线碎片整理

CONFIG SET activedefrag yes

3️⃣ 查看碎片整理相关参数

CONFIG GET active-defrag*

说明:

  • 在线碎片整理会消耗一定 CPU
  • 建议在 碎片率较高且无法随意重启实例 的情况下开启

六、Redis 内存问题排查完整流程(实战总结)

1️⃣ 查看整体内存情况

INFO MEMORY

关注:

  • 最大内存(maxmemory)
  • 淘汰策略(maxmemory-policy)
  • 当前内存使用量
  • 内存碎片率(mem_fragmentation_ratio)

2️⃣ 未设置最大内存

CONFIG SET maxmemory 8gb

⚠️ 建议生产环境必须设置 maxmemory


3️⃣ 未设置淘汰策略

CONFIG SET maxmemory-policy allkeys-lru

4️⃣ 内存碎片率过高(> 1.5)

处理建议:

  • 开启在线碎片整理:
CONFIG SET activedefrag yes
  • 排查并治理大 Key
  • 必要时在低峰期重启 Redis

七、最佳实践总结

  • ✅ 生产环境必须设置 maxmemory
  • ✅ 合理选择内存淘汰策略(推荐 allkeys-lru
  • ❌ 禁止使用 KEYS * 排查大 Key
  • ✅ 使用 redis-cli --bigkeys 定位风险 key
  • ✅ 关注 mem_fragmentation_ratio,而不是 allocator 指标
  • ✅ 碎片率过高再开启 activedefrag
http://www.zskr.cn/news/122055.html

相关文章:

  • 2025年沈阳西点烘焙学校排名TOP5:沈阳欧米奇,专业西点教育机构全解析 - mypinpai
  • 使用qtscrcpy在电脑上进行安卓手机编程
  • 视频汇聚平台EasyCVR构建智慧环保监测新体系,赋能可持续发展
  • 2025年西安不锈钢水箱制造商/供应商排行榜,看哪家工艺精湛? - 工业品牌热点
  • 零基础也能上手!用普通PC20分钟训练中文GPT模型完整教程
  • 2025年陕西不锈钢水箱厂家推荐:源头不锈钢水箱厂家有哪些? - myqiye
  • 3步实现YOLO性能翻倍:从瓶颈诊断到一键部署的实战指南
  • AI产品经理知识库大公开:从小白到大佬的进阶之路
  • 《lvgl基础学习 —— button》
  • Nginx - 内置变量
  • AWVS扫描效率提升300%:高级技巧与自动化方案
  • 国产替代正当时:盘点2025-2026年中国主流的生物反应器品牌与厂家 - 品牌推荐大师1
  • 论文致谢生成工具推荐:8大AI+情感化模板排名
  • python `if __name__ == __main__: `的作用
  • 2025年选购指南:十大高精度车铣复合数控机床品牌对比,液冷接头数控机床/军工配件数控机床/水暖接头数控机床车铣复合数控机床厂家排行榜 - 品牌推荐师
  • 深入解析:可编程逻辑器件学习(day26):低主频FPGA为何能碾压高主频CPU?
  • 2025年中型抽沙船厂家权威推荐榜单:射吸式抽沙船/斗轮式抽沙船/水陆两栖式抽沙船源头厂家精选 - 品牌推荐官
  • GitStats终极指南:5大核心功能深度解析
  • 深度剖析:北京婚姻律师机构 2025-2026 口碑排名及性价比评测 - 苏木2025
  • 24、LVS-DR集群与负载均衡器深度解析
  • THUPC2025 Asian Soul
  • vim替换
  • AI Agent、Agentic Workflow与Agentic AI:一文掌握!
  • 26、构建高可用性负载均衡集群:LVS、Heartbeat与ldirectord的协同应用
  • FlyFish:企业级数据可视化大屏快速搭建实战指南
  • 同样是用AI,有人用它搞钱,有人靠它涨粉,有人拿它做有意义的事儿,我只能用它来自娱自乐
  • PyODBC 终极指南:轻松连接 Python 与各类数据库的完整解决方案
  • GitStats全面指南:解锁Git仓库深度分析的神奇工具
  • 动漫资源管理终极指南:Mikan Project让追番不再迷茫![特殊字符]
  • 实时人像分割的性能突围:从主线程阻塞到Web Worker并行计算