slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
Valkey 开始 Redis 的克隆
17611538698
webmaster@21cto.com

Valkey 开始 Redis 的克隆

数据库 0 1708 2024-07-19 11:59:57

导读:Linux 基金会的 Valkey 项目将不再是 Redis 数据库的一个简单克隆。该项目的维护者摆脱了 Redis 多年来“保守又苛刻”的领导,正在认真改进这个键值存储库,以适应当今的工作负载。

图片

不过,如果你认为 Linux 基金会的 Valkey 项目只是 Redis 数据库的一个克隆产品,那就需要再好好看看本文了:)

该项目的主要维护者称,Valkey 已经摆脱了多年来 Redis 的管理,下一步将改进键值存储,以满足当今工作负载与硬件平台的新兴需求。

“之前的 Redis 核心团队实际上在技术上相当保守,”AWS首席工程师、前 Redis 长期维护者与 Valkey 联合发起人之一 Madelyn Olson 在今年的 Linux 基金会开源峰会上如此表示,

“Redis 确实不想破坏任何东西。” Olson 补充说,新团队想要行动得更快一些。

我们如何从 Redis 走向 Valkey

在今年的 3 月份,Redis Labs 出于商业考虑,更改了Redis的开源许可证,未来版本的许可证将变为更具商业限制的双重许可证。

这对许多用户产生了直接影响,包括个人开发者以及企业。而在最近的调查中,DBEngines将 Redis 评为全球第六大最被广泛使用的数据库。

“这种后退对开源社区来说很糟糕。Redis 不能独自承担所有工作,”Olson 谈到 Redis 的许可证决策时说道。后来的好消息是,他团结了很多喜欢贡献的开源开发者,重建了新的云存储数据库基础。

接下来,Linux 基金会介入并支持Redis早先的一个开源分支,新维护者打算将其保留并继续开源,并将该软件重新命名叫做 “Valkey”。

Valkey 采用 Redis v7.2.4 作为基础,并将其置于开源伯克利软件分发 (BSD) 许可证之下,这便是 Valkey 的初始版本 7.25。

Redis 发展史 

Redis 项目由 Salvatore Sanfilippo 于 2009 年创建,它是一种高性能键/值存储数据库,最初采用开源 AGPL 许可,用作实时数据分析的数据存储,但最终它发现自己适合作为快速数据检索的通用型缓存。

此后,数千名开发人员都为该项目做出了贡献。尤其是Ruby 社区对这项技术非常地感兴趣,促使 Sanfilippo 继续扩展 Redis 并支持多服务器集群。

AWS 工程师、后来的 Valkey 开源负责人 Kyle Davis 在一次演讲中表示:“当我开始参与 Ruby 开发者社区时,真正吸引我注意的一点是,当你有结构,或有键指向存储结构中的值,而不是仅仅存储在一系列字节中。”

“这意味着,当你只有一个字节系统时,你就可以很好地控制这些事物。”

Valkey 代表着一种连续性

在 Redis 闭源之后,许多 Redis 分支都相继冒了出来,其中包括微软的 Garnet(这是用 C# 编写的重新实现版本)、Redict、多线程的 KeyDB(已经存在好几年了)以及 DragonflyDB。

图片

Kyle Davis 进一步解释说,Valkey 在这个新生态系统中的最大作用是提供连续性。它从 Redis 接收了不少外部维护者,并将代码库保留为 C 语言式的单线程。

最最重要的是,它维护了开源许可证,并转为 Linux 基金会的项目,这意味着它不再由一家公司控制。Davis 说:“开源许可证的变更让开发者们感到很受打击。”

Valkey 项目的活跃度

RedMonk 分析师 Steve O'Grady 在一篇博客中分享了 Valkey 的一些 GitHub 统计数据,虽然只是初步的数据。他指出,至少在启动阶段,Valkey 比 Redis 本身更加活跃,尤其是以下几个方面:

- 与 Redis 相比,合并请求的数量大约是其 2 倍(过去 30 天内)

- 开放请求数量增加约 3 倍

- 项目作者数量增加约 2 倍

- 代码添加数量增加约 6.5 倍

- 代码删除数量增加约 4 倍

Valkey:今日兼容,明日尖端

最开始的时候,Valkey 团队致力于确保和 Redis 的兼容性。

假设你正在运行 Redis 7.2.4,则可以关闭这个持久性服务器,然后启动 Valkey,将其指向持久性文件或快照,Valkey 就会立即理解它。

Valkey 开发团队仍在确认所有边缘情况的兼容性,其技术文档也正在更新中。

Davis表示,展望此次新的发布之后,Redis 和 Valkey 将成为“两个不同的软件”。

展望未来,任何一个都可能会,也很有可能,破坏与另一个软件的兼容性。

这并不是说 Valkey 核心开发团队为了兼容性而破坏兼容性,而是他们亦非常渴望开始添加一些新功能,尤其是那些一直在 Redis 等待列表中的功能。

下一个主要版本 Valkey 8 的一个主要主题(Topic)为:在扩展集群时,使“槽”的迁移更加可靠。“目前,当节点发生故障时,它们可能会处于不一致的状态,” Madelyn Olson 说道。此外,得益于 AWS 所做的一些工作,集群中的内存密度也将进一步提高。

Valkey 8 除了上述之外,主要的改进主题汇总如下:

- 更好的性能和内存效率

- 更易于管理

- 更好地与云原生和开源技术集成

- 更丰富的扩展性

Madelyn Olson 表示,在性能方面,Valkey 开发团队希望在其下一版本中实现多线程,以改善水平扩展,并提高每个内核的性能。主要原因是自 2009 年以来,CPU 架构发生了相当大的变化,Valkey 可以更好地利用并发友好的芯片。

通过删除指针和其它无关的“技巧”,内存密度也可以得到提高。

此外,Valkey 集群应该可以更容易管理。Olson 说,Redis 的实现是“集群算法的首次良好尝试。尽管如此,它仍然非常难以管理。”

Olson 表示:“我们希望让这一切变得更加可靠。一组选定的节点将只管理所有其他节点的状态,而不是让每个节点都必须协调彼此的状态,复杂且容易出错“。

“我们很久以前就尝试过构建它,但是 Redis 团队拒绝了,”Olson 如是说。

开发团队还将寻找更好地与其他开源项目集成的方法,这是因为项目与 Linux 基金会的关联。比如有一种简单的方法来整合OpenTelemetry,或者让 Valkey 成为其它开源数据库的缓存前端。

Olson说:“我特别希望得到更多开源贡献者的帮助。”

可扩展性是另一个值得探索的领域,尤其是在开发新数据类型方面。Redis 的最新新数据类型是Stream(字符流),它于 2016 年推出。可以通过模块轻松添加新的数据类型。

所有热门的新数据类型都值得考虑,包括JSON、时间序列数据、矢量数据……以及用于速率限制的t-digest。不过公平地说,Redis 也在研发更多的类似这些新兴的数据类型。

Olson说:“如果有其中之一听起来很有趣,希望您告诉我们,以便我们可以将其列为长期开发路线图的优先事项。”

Valkey 项目计划组织一次贡献者峰会,以进一步充实新想法。

分叉后的反应

Redis 的许可证变更紧随 HashiCorp 的类似举措,后者去年也改为采用更加商业友好的许可证。

这一举措导致Terraform分叉为 Linux 基金会的OpenTofu和Vault ,后来统一更名为OpenBao。在历史上看,对开源友好的 IBM 收购了 HashiCorp,这让很多人希望蓝色公司也将这些产品转回开源模式。

换句话说,Valkey 可能是该行业更具流行趋势的一部分。

RedMonk 的 O'Grady 如此写道:“从长远来看,无论项目最终的命运如何,Valkey 都代表着从市场角度对现行重新授权趋势的第一次真正、重大的转变。”

“并非每个重新授权的项目都能够或将被分叉,”他说道。“但推动将重新授权作为核心战略的投资者、董事会和领导层今后必须认真考虑分叉的可能性,因为这是一项可能更有意义的成本。”

与供应商无关的开源许可证也可能帮助 Valkey 吸引到比 Redis 本身所获得的更多的商业机构资助。

目前所有主流云提供商都以某种形式支持 Redis。而 AWS 已经迅速驰援了 Valkey,并为该项目投入了大量研发工程师。

爱立信、Google Cloud、Oracle以及Percona都开始全力支持Valkey项目,Percona的 技术负责人 Schlemmer  如此说:

“随着 Valkey 项目的形成,这是我们乐意参与、共同实现价值观的机会,因为我们相信开放会更好!”

作者:万能的大雄

评论