Redis 内存估算器
根据 Redis 数据类型、键数量、值大小与编码方式,估算键空间占用的内存大小,考虑 jemalloc 内存对齐与碎片率,辅助容量规划。
功能特性
支持 String、Hash、List、Set、ZSet、Stream、Bitmap、HyperLogLog 及 Redis 8 的 Vector Set(向量集)。
根据 Redis 版本与编码阈值(listpack/ziplist/intset)选择估算模型,并支持 8.0/8.2/8.4。
输入参数即时计算,考虑 jemalloc 内存对齐、碎片率与字段过期开销。
所有估算在浏览器本地完成,无需上传任何数据。
使用步骤
点击选择要计算的 Redis 数据类型,Redis 8 起可估算 Vector Set(向量集)。
填写键数量、值大小、字段数等对应参数。
设置 Redis 版本(最高 8.4)、是否包含键空间开销、碎片率与 Hash 字段过期。
查看内存构成与优化建议,一键复制评估报告。
适用场景
常见问题
估算结果准确吗?
估算基于 jemalloc 8 字节对齐与 Redis 默认编码阈值,结果与真实占用接近,但因版本、配置与运行环境差异,仅作参考。
为什么不同版本结果不同?
Redis 7.0 起使用 listpack 替代 ziplist,3.2 起使用 quicklist 替代 linkedlist,编码方式变化会显著影响内存占用;8.0 起新增 Vector Set 与 Hash 字段过期。
Hash 字段过期会影响内存吗?
会。含字段级 TTL 的哈希无法使用 listpack(无字段级 TTL 槽),强制退化为 hashtable 编码,并需为每个过期字段额外保存字段名,内存明显高于等效小哈希。
Vector Set(向量集)如何估算?
Redis 8 的向量集采用 HNSW 图 + 原始向量(Q8 默认 1 字节/维、FP32 为 4 字节/维、BIN 为 1 位/维)+ 标签/属性。估算计入图指针、向量字节与节点开销,Beta 阶段为近似值。
碎片率有什么作用?
碎片率是 Redis 实际占用物理内存与数据内存的比值,通常 1.0–1.5。用它可估算更接近真实部署的内存消耗。