Redis 编码实验台
常用默认配置 · 教学预测
不是生产环境诊断结果

PREDICTED ENCODING

listpack

紧凑收纳

数量和元素大小都没有越线,继续用紧凑布局。

    内存布局 连续、紧凑,元数据较少
    线性扫描 / 移动压力 较低
    转换尾延迟风险 距离阈值尚有余量

    实验采用的默认起点

    “≤”意味着刚好等于阈值时仍可保持紧凑;任一条件越界都可能触发转换。

    类型紧凑条件(常用默认)越界后的典型编码
    Stringint64 数字 → int;短字符串通常 ≤ 44 B → embstrraw
    Listquicklist 的紧凑节点默认目标约 8 KiB仍是 quicklist,拆成更多节点
    Hash字段数 ≤ 512,且每个字段名和值 ≤ 64 Bhashtable
    Set全为 int64 且成员数 ≤ 512 → intset;非纯整数另见 7.2+ 的 128 / 64hashtable
    ZSet成员数 ≤ 128,且每个 member ≤ 64 Bskiplist + hashtable

    预测之后,去实例里验货

    配置可能被运维改过,不同小版本也会有实现差异。把实验结果当作理解规则的地图,不要把它当成生产诊断报告。

    CONFIG GET hash-max-listpack-*
    OBJECT ENCODING your:key

    提高紧凑编码阈值并不是免费的午餐:它可能省内存,也可能带来更多线性扫描、连续内存移动,以及越界转换时的一次性尾延迟。