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 内存对齐、碎片率与字段过期开销。

本地计算

所有估算在浏览器本地完成,无需上传任何数据。

使用步骤

01选择数据类型

点击选择要计算的 Redis 数据类型,Redis 8 起可估算 Vector Set(向量集)。

02输入参数

填写键数量、值大小、字段数等对应参数。

03调整高级选项

设置 Redis 版本(最高 8.4)、是否包含键空间开销、碎片率与 Hash 字段过期。

04查看与复制

查看内存构成与优化建议,一键复制评估报告。

适用场景

Redis 容量规划键空间内存评估大 Key 内存分析集群分片预算内存优化前后对比成本估算Vector Set 向量集容量评估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。用它可估算更接近真实部署的内存消耗。

相关工具