未来的 Redis 发布版本将继续在 RSALv2 和 SSPLv1 双重许可下提供免费和宽松的源代码使用;这些版本将结合此前仅在 Redis Stack 中提供的先进数据类型和处理引擎。
从今天开始,所有未来的 Redis 版本都将以源代码可用许可发布。从 Redis 7.4 开始,Redis 将在Redis Source Available License (RSALv2) 和 Server Side Public License (SSPLv1) 双重许可下发布。因此,Redis 将不再根据三条款的 Berkeley Software Distribution (BSD) 许可进行分发。
从第一天起,Redis 就为驱动现代互联网的应用和数据基础设施提供了性能和简洁性的基础。如今,15 年后,我们很自豪能通过支持世界每天依赖的实时应用,服务全球数百万开发者。我们已经在 Redis Stack 分发版下为我们的高级 Redis 模块实现了双重许可,这受到了社区的广泛好评。事实上,在 redis.io 的下载量中,超过 50% 的下载量——从 Redis 6 及更高版本——来自 Redis Stack。我们现在相信,将这种许可扩展到 Redis 本身,将使我们能够继续为用户发展最全面的数据模型、处理引擎和开发者能力。
新的源代码可用许可使我们能够持续地提供对源代码的宽松使用。我们正带领 Redis 进入下一阶段的发展,成为一个拥有统一客户端、工具和核心 Redis 产品供应的实时数据平台。Redis 源代码将继续通过 Redis Community Edition 免费提供给开发者、客户和合作伙伴。未来的 Redis 源代码可用版本将把核心 Redis 与 Redis Stack 统一起来,包括搜索、JSON、向量、概率和时间序列数据模型,在一个免费、易于使用的软件包中作为可下载软件提供。这将使任何人都能轻松地在各种场景中使用 Redis,包括作为高性能键值存储和文档存储、强大的查询引擎,以及为生成式 AI 应用提供动力的低延迟向量数据库。
Redis 的成功带来了一系列独特的挑战。Redis 一直在资助大部分开发工作,同时拥有一个充满活力的、热衷于贡献的开发者社区。然而,Redis 的大部分商业销售是通过最大的云服务提供商进行的,他们将 Redis 的投资及其开源社区的成果商品化。尽管我们努力支持社区主导的治理模式,并渴望维护 BSD 许可,但同时交付多个软件分发版本——包括开源、源代码可用和针对不同本地和云平台优化的商业软件——与我们成功推动 Redis 走向未来的能力存在冲突。
在新许可下,托管 Redis 服务的云服务提供商将不再被允许免费使用 Redis 的源代码。例如,云服务提供商只有在与 Redis(Redis 代码的维护者)达成许可协议后,才能提供 Redis 7.4。这些协议将支持现有的集成解决方案,并提供对即将到来的 Redis 创新成果的完全访问。
微软开发者事业部总裁 Julia Liuson 表示:“我们期待继续合作,以最新的数据存储和管理创新成果支持开发者。”“我们的合作将继续支持 Azure Cache for Redis 等集成解决方案,并将为微软客户提供对 Redis 产品中扩展功能的独家访问权限。”
实际上,对于 Redis 开发者社区而言,没有任何变化,他们将继续在双重许可下享受宽松的许可。同时,由 Redis 负责的所有 Redis 客户端库将保持开源许可。Redis 将通过其合作伙伴计划,继续支持其庞大的合作伙伴生态系统——包括托管服务提供商和系统集成商——提供对 Redis 开发和交付的所有未来发布版本、更新和功能的独家访问权限。对于现有的 Redis Enterprise 客户而言,没有任何变化。
我们的新许可方式在广泛提供 Redis 源代码、以最少的限制支持开发者社区以及保护我们继续投资于功能丰富的免费软件和企业产品的能力之间取得了最佳平衡。
正如我们一直以来所做的,我们的团队、社区、客户和合作伙伴将继续在创建、推进和部署 Redis 作为领先的实时数据平台方面引领潮流。
欲了解更多信息,请阅读下面的许可变更常见问题解答。
1. Redis 今天宣布了什么?
Redis 宣布,从 Redis v7.4 及所有未来的 Redis 发布版本开始,将 Redis 核心软件从 BSD 3-Clause License 过渡到双重许可方法,使用Redis Source Available License version 2 (RSALv2) 或 Server Side Public License version 1 (SSPLv1)。
RSALv2 是一种宽松的非 copyleft 许可,允许“使用、复制、分发、提供和准备软件的派生作品”的权利,并且只有两个主要限制。根据 RSALv2,您不能
- 将软件商业化或将其作为托管服务提供给他人;以及
- 删除或模糊任何许可、版权或其他通知。
我们的双重许可方法并非新事物;我们已于 2022 年 11 月 15 日在双重许可下发布了 Redis 模块(包括 RedisJSON、Redis Stack 等)。现在,我们将对所有免费提供的软件采用双重许可。我们相信,RSALv2 的宽松方法以及我们用来定义其限制的标准措辞解决了社区提出的许多挑战。
这种双重许可方法允许用户在宽松但知名度较低的 RSALv2 许可,或更常用但具有 copyleft 特性的 SSPLv1 许可之间进行选择。
需要明确的是,RSALv2 和 SSPL 都不是 OSI 批准的许可,并且各自都有其限制。简单来说,RSALv2 对软件的商业化施加了一些限制。SSPLv1 要求,如果您将产品作为服务提供,则必须在 SSPL 下公开发布任何修改及其管理层的源代码。
在云时代采用源代码可用许可的必要性已被多次讨论,我们很自豪能够通过采用开发者已经了解和使用的标准来为此做出贡献。我们相信双重许可为 Redis 开发者如何利用我们的最新技术提供了清晰性和灵活性。
与 Redis 相关的其他宽松许可技术,例如各种特定语言的客户端库、Terraform 和 Pulumi 提供商等,不受此变更的影响。
此外,从 Redis 8 开始,我们计划在我们的产品中默认包含新的数据类型和处理引擎,这些在 Redis Stack 中曾根据 RSALv2 或 SSPLv1 许可提供。
因此,我们还宣布,一旦 Redis 8 可用,Redis Stack 将停止维护。由于此变更,将不再需要提供这些功能的单独构建版本,因为从 Redis 8 开始它们将成为 Redis 本身的一部分。
2. Redis Inc. 为何进行此变更?
我们希望所有开发者都能获得我们提供的最佳技术。但是,我们不得不进行所有这些模块上的操作,来推进那些本应属于 Redis 核心的功能。我们没有忠于最初的宣言——我们反对复杂性。因此,这一变更调整了许可方式,使我们能够以一种简单一致的方式简化额外数据类型和更多功能的打包和发布。
我们坚信公开分享源代码的价值,并赋能实践者解决他们的问题、建立社区和创造透明度。Redis 为社区免费提供功能丰富的产品,而这些开发工作得益于与我们合作的商业客户。通过转向此许可,Redis 可以更好地管理我们源代码的商业使用,并以不阻碍他们工作的方式,继续投资于我们蓬勃发展的实践者社区,其中一些人也是贡献者。
3. 此变更对 Redis 开源产品的最终用户有何影响?
对于将其内部或个人使用 Redis 的开源版本及使用双重许可的新发布版本的最终用户,没有变化。
4. 此变更对利用 Redis 的第三方库有何影响?
对于构建了客户端库或与其他 Redis 集成的集成合作伙伴,没有变化。
5. 此变更对 Redis 的商业客户有何影响?
对于 Redis 的商业客户,没有变化。这些客户根据单独协商的许可条款获取我们的技术。
6. 哪些人受到此变更的影响?
提供与 Redis 竞争的服务的组织将不再被允许在双重许可下免费使用 Redis 新版本的源代码。提供商业许可条款,可以实现超出 RSALv2 或 SSPLv1 许可限制的使用场景。如果您正在构建一个利用 Redis 但不直接与 Redis 本身竞争的解决方案,则不受影响。如果您有特定的担忧或问题希望讨论,请发送电子邮件至 [email protected]。
7. 在 Redis RSALv2 或 SSPLv1 许可下,“竞争性服务”是如何定义的?
“竞争性服务”是指基于 Redis 代码库,并与 Redis 商业产品的能力显著重叠,向第三方销售的产品,包括通过付费支持安排销售的产品。例如,此定义将包括将 Redis 作为解决方案的一部分进行托管或嵌入,该解决方案与我们的 Redis 商业版本(无论是 Redis Enterprise Software 还是 Redis Cloud)竞争性销售。还提供定制许可条款,以提供更多清晰度并实现超出 RSALv2 或 SSPLv1 限制的使用场景。如果您需要就特定使用场景获得进一步澄清,可以发送电子邮件至 [email protected]。
8. 下一个发布版本中,哪些产品将受 RSALv2 或 SSPLv1 覆盖?
此变更有效地使我们所有源代码可用模块的许可与 Redis 核心保持一致。
10. 如果我修改了 SSPL 许可下的软件源代码,我能否在其他许可下重新分发我的修改版本?
不能。您的修改版本由原始软件和您的修改组成,它们共同构成了原始软件的派生作品。SSPL 许可不授予您在其他许可下重新分发的权利。
但是,如果您选择使用 RSALv2 许可(在双重许可下),您可以修改和重新分发代码,前提是您不将软件或修改版本的功能作为服务提供给第三方,或者以使得软件功能可供第三方使用的方式分发软件或修改版本。
11. 我能否继续使用根据原始三条款 BSD 许可提供的产品版本?
是的。许可变更没有追溯力。这意味着变更之前的所有源代码和发布版本仍受三条款 BSD 许可的约束。您可以无限期地继续在原始许可下使用这些版本,只要您遵守其条款和条件。Redis 计划根据我们当前的安全政策,在 Redis Community Edition 可用之前,继续为这些版本提供安全更新并解决其他关键缺陷。
12. Redis 是否会将安全补丁反向移植到三条款 BSD 许可下的旧版本?
Redis 将根据当前安全政策,继续将关键安全补丁(如果可用)反向移植到三条款许可下的现有版本,直到 Redis Community Edition 9.0 发布。该日期之后的任何补丁将根据新的双重许可提供。
13. Redis 仍然相信开源吗?
首先,我们公开承认,此变更意味着 Redis 不再符合OSI 定义下的开源。
其次,我们免费提供的技术比我们商业化的更多。每天都有人在以令人惊叹的、极具创新的方式使用免费版本的 Redis,我们对此表示赞赏。我们将继续投入,确保 Redis 在未来多年内仍然是一个引人注目且具有竞争力的平台。
第三,为了支持这些技术的商业实体能够生存和发展,更改许可条款以保护品牌和知识产权已成为许多开源项目演进的自然组成部分。
最后,Redis 仍然是开源理念的倡导者,并维护着大量开源项目,包括许多与 Redis 一起使用的特定语言客户端库(参见 https://github.com/redis)、集成工具,例如 Redis Input-Output Tool(参见 https://github.com/redis-developer)等。对于希望贡献的人,我们仍然对接受未来的贡献持开放态度——就像我们在过去五年对源代码可用模块所做的那样。
14. Redis 现在如何称呼以前称为开源(或 OSS)的免费可用产品版本?
我们曾将我们的产品版本称为开源 (OSS)、企业版 (Enterprise) 或云版 (Cloud)。Redis v7.2 及之前的版本将继续被称为 Redis OSS。从 Redis v7.4 开始,我们将免费公开的版本称为 Redis Community Edition。RSALv2 和 SSPL v1 许可都提供了对 Redis Community Edition 底层源代码的公开和免费访问。但是,它不符合 OSI 定义的开源定义,这就是为什么我们将产品称为“社区版”而不是以前的“开源版”。我们的网站上有很多关于开源的引用,我们正在积极努力在未来几周内澄清这些语言变化。
15. 我如何与 Redis 合作提供托管服务?
集成和托管服务提供商合作伙伴可以通过与 Redis 建立合作关系,继续构建、运营和交付利用 Redis Community Edition 和 Enterprise 的非竞争性服务解决方案。社区和企业级合作伙伴将继续受益于激励、技术培训、认证和销售培训。至关重要的是,合作伙伴将获得对未来 Redis 技术、功能和发布版本的独家访问权限,这些都将受到双重许可的保护。要成为 Redis 合作伙伴或了解有关我们合作伙伴权益的更多信息,请访问我们的合作伙伴计划网站。对于现有合作伙伴,如有关于许可变更的任何问题,请发送电子邮件至 [email protected]。
16. 我正在构建(或已构建)一个嵌入 Redis 的产品,并且担心您可能会将其视为竞争性产品。我如何才能明确我的产品是否会违反 RSALv2 或 SSPLv1 许可?
请联系我们。我们很乐意与您交流。开始对话的最佳方式是发送邮件至 [email protected]。我们可以及时回复您的问题,并讨论建设性的解决方案,包括可能的豁免和/或合作伙伴安排。
17. 我是一个以非竞争性方式使用 Redis 的开源项目的作者。如果其他人使用我的项目来生产竞争性产品或托管服务(例如,开始在其 SaaS 解决方案中使用我的项目),我是否会面临被视为竞争性产品并违反双重许可的风险?我是否需要跟踪我项目的所有用户并报告可疑的侵权使用?
只有以竞争性方式嵌入或托管 Redis 产品的行为违反了许可。这种违规行为不适用于未进行此类操作且不要求他人代表其进行此类操作的项目所有者。项目所有者没有义务监控或报告他人如何使用他们的项目。
18. 我能否继续围绕 Redis 产品提供专业服务?
是的。我们拥有一个庞大的系统集成商合作伙伴生态系统,他们提供咨询和专业服务,帮助用户在其内部使用中部署、管理和运营我们的产品。我们更改许可的目的并非阻止合作伙伴提供这些服务,我们将继续鼓励和支持这类系统集成商合作伙伴。RSALv2 仅仅是为了阻止以与我们竞争的方式嵌入或托管我们的社区产品。
19. 我能否将 RSALv2 或 SSPLv1 许可下提供的代码与在我的项目中根据不同许可(例如 Apache、MPL 等)提供的代码混合使用?
可以,前提是每个组件保留其自己的许可,并且您不将 RSALv2 或 SSPLv1 代码与像 GPL 这样的强 copyleft 许可代码混合使用。对于像 Apache 这样的一些宽松许可,您也可以在 RSALv2 或 SSPLv1 下提供整个程序,但要包含 Apache 部分的通知(这是可能的,因为 Apache 与其他一些开源许可不同,它授予转授许可的权利)。请记住,如果您混合使用不同许可下的代码,您可能无法以符合所有许可的方式重新分发它。
20. 我能否在我的组织内部将 Redis 作为一项服务托管?
可以。RSALv2 或 SSPLv1 的条款允许所有非生产和生产用途,但不包括向嵌入或托管我们软件的第三方提供竞争性服务。允许为您的组织内部使用托管产品。一个组织包括其附属机构和子公司。这意味着一个部门可以为另一个内部部门托管 Redis 供其使用。
21. 如果 Redis 未来发布了新产品或功能,导致我的项目变得具有竞争力怎么办?
如果 Redis 未来创建的服务与您已经在生产中提供的产品具有竞争力,只要您使用的版本是在 Redis 发布其新服务之前发布的,您继续使用托管或嵌入的 Redis 产品不会被视为违反 RSALv2 或 SSPLv1。
22. 在我的产品名称中使用“Redis”是否有更新的要求?
是的,在产品名称中使用“Redis”有更新的要求。您不能再在产品名称中使用“Redis”或“for Redis”,但可以在产品描述中使用名称“Redis”,或说明您的产品与 Redis 兼容或基于旧版本 Redis。有关 Redis 名称和标识使用方式的更多信息,请参阅我们的商标政策。
23. 我在哪里可以了解更多关于此公告的信息或提出进一步的问题?
阅读博客文章或通过 [email protected] 联系我们。
24. Redis 是否会接受在新许可下的社区贡献?
Redis 仍然是开源理念的倡导者,并维护着大量开源项目。对于希望贡献的人,我们仍然对接受未来的贡献持开放态度——就像我们在过去五年对源代码可用模块所做的那样。今后,贡献者必须接受贡献者许可协议 (CLA),我们才会考虑该贡献。