dev.to | 📄 原文链接 | 2026-09-12 收录

Valkey 9.1 的哈希字段 TTL:把官方文档推荐的用法内存开销抬高了两倍

来源:dev.to — 2026-09-11

📋 概述

Valkey 9.0 允许给哈希里的单个字段设置 TTL,9.1 又加了 HSETEX,一次往返就能设好字段和过期时间;官方博客给的例子是按用户存鉴权 token,看上去可以无缝替代 SET user:123:auth_token ... EX 900。作者在单机 Docker 上对两万条数据做了对照实验:按文档写的「一 key 一 hash、一个字段带 TTL」占用 261 字节每 key,而不带 TTL 的 hash 与普通字符串加 EXPIRE 都只要 87 字节左右。给字段加 TTL 的代价几乎等同于把整个 hash 的编码从 listpack 换成 hashtable,是约三倍的内存回归;文档真正想要的「一个 hash 装多个字段」模式每字段只多约 23 字节。

🔑 核心要点

💡 金句

Giving a single field a TTL costs almost exactly the same extra memory as switching the whole hash's encoding from listpack to hashtable.
← 返回 dev.to 首页