首页/数据/Redis 进阶速查/INFO memory 关键字段解读
内存与管理99 条

INFO memory 关键字段解读

INFO memory 输出字段按口径分组:used_memory 系列、rss 系列、碎片率、峰值与分配器统计,读懂口径才能正确告警。

Redis 进阶速查数据更新于 2026-10-13

字段口径要先分清

INFO memory 的输出按口径分成几组:分配器统计口径的 used_memory 系列、操作系统视角的 rss 系列、峰值与碎片率,以及各功能模块的占用。设告警前必须分清口径:used_memory 是 Redis 自己记录的分配量,used_memory_rss 是操作系统看到的常驻内存,两者相差较大时说明存在碎片、未归还内存或换页。

基本信息

查看命令redis-cli INFO memory / MEMORY STATS / MEMORY USAGE <key>
分配器口径used_memory、used_memory_peak、used_memory_overhead
系统口径used_memory_rss、mem_fragmentation_ratio
上限口径maxmemory 与 maxmemory_policy
单位全部为字节,监控侧需自行换算

典型使用场景

  • 制定内存告警阈值,先确定用哪个字段作为使用率分子
  • 排查内存缓慢上涨:区分是数据集增长还是客户端缓冲等开销上涨
  • 重启后对比峰值字段,确认是否有异常的内存尖峰
  • 容量评审时按数据集大小与开销比例推算需要的内存规格
  • 碎片率偏高时判断是否需要用内存整理或滚动重启回收

查看示例

查看示例
redis-cli INFO memory                          # 一次拿到全部内存字段
redis-cli INFO memory | grep -E 'used_memory:|used_memory_rss|mem_fragmentation_ratio'
redis-cli MEMORY STATS                         # 更细的分项统计
redis-cli MEMORY USAGE mykey                   # 单个键的实际占用,排查大键

字段对照

字段含义异常表现
used_memory分配器口径的总内存持续逼近 maxmemory 时淘汰或拒写开始出现
used_memory_rss操作系统视角的常驻内存显著高于 used_memory 说明碎片或未归还
used_memory_peak历史峰值峰值贴近机器物理内存说明余量不足
mem_fragmentation_ratiorss 与 used_memory 的比值大于 1.5 偏高,小于 1 需警惕换页
maxmemory配置的可用上限为 0 表示未限制,容器中易被内核杀掉

一次内存排查的顺序

  • 先看 used_memory 对 maxmemory 的占比,判断是否已经接近淘汰或拒写的边界
  • 再拆数据集与开销两块,确认涨的是业务数据还是连接与缓冲类的固定开销
  • 用 MEMORY USAGE 抽查几个大键,排除个别键异常膨胀造成整体占用上升
  • 对比 used_memory_rss 与碎片率,判断是否存在碎片堆积或内存被换出
  • 最后再看峰值字段与历史曲线,确定是缓慢增长还是一次性尖峰
告警通常以 used_memory 相对 maxmemory 的占比为主,rss 用于观察碎片与系统压力,两者分工不同,不要混用一条阈值。
不同版本新增或调整过内存字段,升级后要核对监控脚本解析的字段名是否仍存在,否则会出现静默采集失败。

易错点

  • 把 used_memory 当成进程真实占用,会低估系统压力,容器里容易被 OOM 杀掉
  • 只看总量不拆构成,内存上涨后无法快速判断是数据还是缓冲引起
  • 用 rss 设置淘汰触发条件,逻辑上不成立,淘汰判断依据的是 used_memory
  • 监控脚本硬编码字段名,升级后字段变化导致采集静默失效而无人发现

数据来源与参考

  • Redis 官方文档:INFO 命令 memory 段说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌