Redis 是流行的内存数据存储,现在又以开源许可证提供。
在专有的 Redis 源代码可用许可证 v2 (RSALv2) 和服务器端公共许可证 v1 (SSPLv1) 下双源代码一年后,Redis 8 现在在绝对 (开源)AGPL v3 许可证下可用。
此举是在 AWS、Google、Oracle 和其他公司支持 Valkey 分叉之后进行的,Valkey 分叉在过去几个月中在开源社区中获得了相当大的关注。
Redis 在一年前转向此许可方案的原因是防止一些主要云提供商在其平台上将 Redis 作为托管服务提供。根据新许可证,他们必须获得 Redis 的许可,Microsoft 就是这样做的。
“我们不得不把 Amazon、Google从我们身边甩下来——并在某种程度上 Microsoft,”Redis 首席执行官 Rowan Trollope 在本月早些时候的一次采访中告诉我。“我花了一些时间与 Elasticsearch 的 CEO 交谈,这与他们所经历的事情完全相同。这真的只是重复。当我和他交谈时,我问道:‘你为什么要这样做?’他说:‘我们让他们只是复制代码,如果他们不这样做,我们就无法将任何内容放入 Elastic 中,最重要的是保护品牌。’”
但更改许可证只是 Trollope 所说的“中等成功”。去年我和他聊天时,他预计 Amazon 和其他公司会推出一个分叉,而 Valkey 正是如此。
“随着时间的推移,这些将不再是相同的产品,”Trollope 说。“现在,它实际上已经一年了。我们正在推出 Redis 8。所以分歧点现在才真正开始。”
Trollope 指出,他曾希望开源计划(Open Source Initiative)——它本质上是许可证被视为“开源”的守门人——可能会重新考虑它在 SSPL 中的立场。但这并没有发生。
“所以我们在 Redis 上选择了 Microsoft,但这让 Amazon 和 Google 基本上可以打造一个叙述,那就是:Valkey 是 Redis 的开源替代品,”Trollope 说。
一年前,当我问 Trollope 客户如何看待从开源到新许可证的最初变化时,他认为绝大多数人并不关心。然而,现在,他承认其中一些是确认偏差。
“我们的客户并不关心,但那些不是我们客户的人,他们中的一些人确实关心——我们没有与他们交谈,”他说。“所以,我的错误。当我出去与更多潜在客户交谈时,他们开始提出这个问题:‘我们喜欢开源的想法。无论我怎么说 SSPL 本质上与开源相同,它就像是将绳子推上山坡。’我当时想:‘这行不通。就像,哦,该死的,我们现在该怎么办?’”
当 Redis 联合创始人 Salvatore Sanfilippo 去年回到公司时,他和 Trollope 开始讨论将 Redis 重新置于开源许可证下,因为转向专有许可证已经实现了公司的目标。
“我们真的考虑得很清楚,然后说,‘实际上,这是有道理的。’因为 Amazon 和 Google 已经铺平了床,我们可以采用 AGPL 许可证。这就是 Redis 8 的许可证,我们相信 AGPL 许可证提供了来自云服务提供商的保护,因为如果他们想为我们提供开源版本,他们可以做到,他们必须将所有代码作为开源发布。他们的内部政策说他们不会这样做。所以我们认为这是一个有效的模式。
Trollope 说,最初,Redis 不想使用 AGPL。这是因为,尽管该团队认为 Amazon 不太可能同意许可证的规定,但 Redis 的律师认为,由于 Amazon 的 Redis 业务价值数十亿美元(或者至少 Trollope 是这么认为的),这可能会使 Amazon 改变其对 AGPL 的立场。
Trollope 还承认,他和公司的其他成员并没有充分参与开源社区。他认为,Sanfilippo 现在可能在社区中拥有这样做的信誉,但当时,该公司基本上保持沉默,“这是一个错误,”Trollope 说。
Redis 认为 Valkey 分叉并没有对整个 Redis 社区产生太大影响。
“我们有 98% 的实际为 Redis 开源做出贡献的人为 Redis 工作。Valkey 基础上的人确实更多地是边缘贡献者,除了 Madelyn 之外,她是一位出色的贡献者,“Trollope 说——并立即将其撤回。“这听起来比我需要的更贬义。我们尊重这些人。我们喜欢他们这样做。我们希望他们再次成为 Redis 的贡献者。
至于 Redis 8 本身,它将包括 Sanfilippo 在回到 Redis 期间创建的新矢量集,以及许多性能改进。不过,也许更重要的是,它还将集成 Redis Stack 中的所有软件包,该软件包以前在单独的许可证下提供,但现在再次重新集成到整个 Redis 发行版中。这为 Redis 带来了 JSON、时间序列和概率数据支持等功能。