Valkey 8.1:Redis fork 功能包括性能、内存改进和新模块

瓦尔基

已经宣布了 发布新版本«Valkey 8.1», Redis 的一个分支,在过渡到专有许可后诞生,旨在维护原始项目的开放理念。

瓦尔基 8.1 它具有大量的改进和变化, 其主要重点是性能优化,以减少延迟、提高内存效率和新的模块化功能。

Valkey 8.1 的主要新功能

最重要的变化 在这个版本中 完全重写哈希表,既可用于键值数据存储,也可用于结构化数据类型,例如 Hash、Set、Sorted Set。由于这次重新设计, 内存使用量已减少:没有 TTL 的每个键减少 20 个字节, 如果密钥具有定义的生存期,则最多 30 个字节。此外,随机内存访问的减少使得单线程 I/O 环境中的性能提高了 10%。

Valkey 8.1 的另一个新功能是,在诸如 KEYS 命令或 集群中节点之间的密钥传输现在具有缓存预加载系统, 这使得下一个密钥在处理开始之前可用。这种方法通过更好地利用处理器缓存,将键查找速度提高了 3,5 倍。

多线程 I/O 和 TLS 改进

Valkey 继续向多线程 I/O 模型过渡。现在, TLS 连接处理在单独的流中执行,其接受新连接的能力增加了两倍。 SSL_pending() 和 ERR_clear_error() 等函数也被隔离到单独的线程中,从而使 SET 操作的性能提高了 10%,GET 操作的性能提高了 22%。

复制已得到改进,特别是在具有主动 TLS 的环境中,消除了不必要的校验和等冗余操作。这使得无盘复制期间的完全同步提高了 18%,并且复制和写入操作的成本降低了 47%。

有序集和概率类型的优化

El ZRANK 命令 对于有序集已经进行了优化, 现在速度提高了 45%,而 ZADD 采用了 SIMD 指令 以实现更高的效率。对于概率数据类型,HyperLogLog 的使用得到了改进,只需使用 12 KB 固定内存,并且使用 AVX2 指令可以使 PFMERGE 和 PFCOUNT 操作的性能提高最多 12 倍,BITCOUNT 的性能提高最多 5 倍。

不间断的主动碎片整理和对注册表的更多控制

El 主动碎片整理系统也得到了改进 以避免堵塞或延误。 现在,每个碎片整理周期仅持续 500 微秒, 并实施了反饥饿策略,防止这些任务因长期作业而被推迟。

已经介绍 记录格式的新配置选项,包括自定义时间格式和记录长请求和响应的新 COMMANDLOG 模式。此外,LATENCY LATEST 命令已扩展了新的指标,可以更好地查看记录的峰值和容量延迟。

新功能、模块和支持

瓦尔基 现在允许您执行 SET IFEQ 操作, 其条件是将键写入当前值。还 引入了对脚本引擎的模块化支持,开启了通过自定义模块使用 Lua 替代语言的可能性。

在这个版本中 多个模块首次亮相:

  • 搜索模块(谷歌): 向量相似性搜索引擎,非常适合需要低延迟和高吞吐量的机器学习案例。
  • JSON 模块(AWS): 允许直接操作 JSON 文档片段,避免在客户端完全处理内容。
  • 布隆过滤器模块(AWS): 布隆过滤器的实现,有助于确定集合中元素的可能成员资格,具有概率效率

最后,如果您有兴趣能够了解更多,可以在 以下链接。