Valkey 9.0.0 正式 GA,Linux 基金会维护的 Redis 分支
由 Linux 基金会维护的 Redis 分支 —— 开源内存数据库 Valkey 9.0.0 已正式 GA。新版本带来多项重要性能与功能升级。此次更新的重点在于更高效的集群迁移机制、更灵活的哈希字段管理,以及对大规模分布式部署的全面优化。
原子槽迁移(Atomic Slot Migrations)
-
在旧版本中,集群中数据从一个节点迁移到另一个节点是“逐 key”迁移:先 move 再 delete。会导致迁移过程中客户端访问不确定在哪个节点、重定向或重试、性能下降。
-
在 9.0 版中,Valkey 引入“槽级别”的迁移机制:每个节点负责多个“槽”(slot),现在迁移直接将整个槽(slot)从一个节点原子地迁移到另一个节点。这样可以避免旧机制那种“key 在两个节点间”的不确定状态。
-
对于大集合(例如 sorted sets、lists)迁移时也更友好:旧方式大 key 可能因为目标节点输入缓冲区满导致迁移阻塞。新机制使用 AOF 格式逐项迁移集合成员,而不是整体 key,减缓了延迟峰值。
支持哈希字段级别的过期(Hash Field Expiration)
-
在 9.0 之前,哈希类型(hash)中的所有字段共同绑定在一个 key 下,过期机制只能对整个 key 执行,无法对某个字段单独设置过期。导致如果只想让其中某几个字段过期,只能拆分多个 key、复杂化且增加内存占用。
-
9.0 版新增一系列命令支持 “字段级别的过期”:如
HEXPIRE、HEXPIREAT、HGETEX、HPERSIST、HPTTL、HPEXPIRE等。
集群模式下支持编号数据库(Numbered Databases in cluster mode)
-
传统上,Redis 及其分支中“编号数据库”(如 db0、db1 等)在集群模式下一般仅支持 db0。一旦启用多个编号数据库,就限制了分片扩展。
-
Valkey 9.0 打破这个限制:在集群模式下支持多个编号数据库,这让用户可以在同一个集群内按“库”分隔数据、避免 key 冲突、提高灵活性。
下载地址:https://github.com/valkey-io/valkey/releases/tag/9.0.0
