作者 | Losio
译者 | 王强
策划 | Tina
Linux 基金会刚刚宣布 8.0 正式发布,这是一款开源内存存储解决方案,是 Redis 的后继产品。该方案为每个插槽引入一个字典并将键直接嵌入到了字典条目中,使开发人员可以实现高达 20% 的容量提升,让每个节点能存储更多键。
是根据 BSD 许可发布的,是一款高性能键 / 值数据存储,支持各种负载,包括缓存、消息队列,也可用作主数据库。 可以作为独立守护进程或在集群内运行,有复制和高可用性选项。 的高级开发者倡导者和开源领导者 Kyle Davis 写道:
虽然这是一个主要版本,但 非常重视命令集兼容性: 8.0.0 不会对现有命令语法或其响应进行向后不兼容的更改……由于此版本对软件使用线程的方式进行了更改,因此你可能需要重新评估集群的基础架构以实现最高性能。
社区的第一个主要版本是在 Redis 切换到 许可证仅五个月后发布的,由于这一许可证的天然约束性,Redis 之前的维护者分叉了另一个版本出来字典遍历,正如 InfoQ 先前 报道 所述。AWS 首席软件工程师兼 项目维护者 Olson 评论道:
Redis 大约 6 个月前不再开源字典遍历,我还清楚地记得我在 Slack 上与之前的 Redis 贡献者讨论我们要做些什么……我们最近达到了 50 万个容器拉取,来自服务器和客户端生态系统的 100 多人做出了贡献,并有 40 多个组织支持我们。
AWS 软件工程师兼 贡献者 Patro 在解释内存处理方面的改进时写道:
第一个优化是每个插槽一个字典(总共 16,384 个),每个字典存储一个给定插槽的数据。通过这种简化, 8 中不再需要为了将插槽映射到键而维护额外的元数据。要迭代给定插槽中的所有键,引擎只需找出给定插槽的字典并遍历其中的所有条目即可。
其他优化包括了 一个新的多线程架构 和将键嵌入字典条目,这消除了额外的内存查找需求并将每个键的内存开销减少了 8 个字节。