一、核心概念解释
1. USED(已用内存)
-
定义 :
USED是 Redis 实际存储数据和运行时所需的内存,是 Redis 内部自己统计的、真正用于存放键值对、过期表、字典结构等核心数据的内存大小。 -
通俗理解:相当于你往 Redis 这个 "仓库" 里实际堆放的 "货物" 占用的空间。
-
查看方式 :通过
INFO memory命令查看used_memory字段,单位是字节:127.0.0.1:6379> INFO memory # Memory used_memory:104857600 # 示例值:100MB,即USED内存 ... -
特点 :
- 直接反映 Redis 业务数据的内存占用;
- 会随着数据的增删改查实时变化;
- 是 Redis 配置
maxmemory时主要参考的指标(maxmemory限制的就是USED内存)。
2. RSS(常驻集大小)
-
定义 :
RSS(Resident Set Size)是操作系统层面统计的、Redis 进程实际占用的物理内存,也就是操作系统分配给 Redis 进程的内存总量。 -
通俗理解:相当于 "仓库" 本身(包括货架、通道、闲置空间)加上 "货物" 总共占用的土地面积。
-
查看方式 :通过
INFO memory命令查看used_memory_rss字段:127.0.0.1:6379> INFO memory # Memory used_memory:104857600 used_memory_rss:134217728 # 示例值:128MB,即RSS内存 ... -
特点 :
- 包含 Redis 的
USED内存 + 内存碎片 + 操作系统分配的额外内存(如进程栈、共享库、内存页表等); - 通常
RSS > USED,差值就是内存碎片 (通过mem_fragmentation_ratio = used_memory_rss / used_memory计算,正常范围 1.0-1.5); - 如果
RSS远大于USED(碎片率 > 2),说明内存碎片严重,可能需要重启 Redis 清理;如果RSS < USED,说明 Redis 使用了交换内存(swap),性能会大幅下降。
- 包含 Redis 的
二、关键区别对比
| 维度 | USED 内存 | RSS 内存 |
|---|---|---|
| 统计层面 | Redis 内部统计 | 操作系统层面统计 |
| 包含内容 | 仅业务数据 + 核心运行内存 | USED + 内存碎片 + 系统额外内存 |
| 核心作用 | 反映实际数据占用,参考 maxmemory |
反映进程实际占物理内存,排查碎片 /swap |
| 大小关系 | 通常更小 | 通常更大 |
总结
USED是 Redis 自身使用的 "有效内存",直接对应业务数据量,是配置maxmemory的核心参考;RSS是操作系统给 Redis 进程分配的 "总物理内存",包含碎片和系统开销,主要用于排查内存碎片、swap 等问题;- 健康的 Redis 实例中,
RSS略大于USED(碎片率 1.0-1.5),若差值过大需关注内存碎片,过小需警惕 swap 占用。
