1. 背景
2024年3月21日,Redis Inc. 宣布正式修改开源Redis core的服务协议至RSALv2与SSPLv1的双Dual-License,并于 Redis 7.4 版本后关闭开源BSD软件分发协议。同时,Redis Inc. 也关闭了自2020年7月买断Redis社区后形成的以Core Member(一共5人,Redis Inc. 3 人, Alibaba Cloud 1 人,AWS 1 人)为核心的社区管理方式,后续开发由Redis Inc. 全权管理。
社区的突然转向让诸多开发者和社区参与者感到意外,进行中的讨论和项目(主要是Redis 8.0进行中的开发等)不得不因此而中断,包括一系列云厂商对社区Redis底层和能力的重构如:集群无感扩缩容(由阿里云提案,阿里云已有)、主从无感HA(由阿里云提案)、unsharded-cluster(由AWS提案,AWS已有)、cluster v2(去gossip)(由Redis Inc. 提案,阿里云已有)、多IO优化(阿里云已有)等。
2. Valkey社区的成立
在Redis Inc. 修改协议之后,社区成员快速做出反应,由原来Redis社区的多名核心开发者全新组建了Valkey社区,并捐献给Linux开源基金会进行运营。在4月16日召开的Linux基金会北美开源峰会上,Linux基金会宣布阿里云等多家厂商正式加入Valkey社区,并发布全新版本Valkey 7.2.5。目前Valkey项目的maintainer共有六名,分别来自阿里云、AWS、谷歌等全球知名企业,同时还有甲骨文、Percona、Verizon、Snap等商业公司也宣布对Valkey的支持。
Valkey旨在延续Redis开源社区的工作,项目依然采用宽松的BSD-3开源协议,同时Redis社区未完成的PR和Issue将转移到Vakey社区持续开发。Valkey最新发布的7.2.5版本,完全兼容Redis 7.2,原Redis社区用户可无缝迁移至Valkey。在未来版本计划中,Valkey目前规划了Redis社区原8.0计划但搁置的工作,如slot迁移可靠性提升、集群slot存储优化、扩充命令集合、可观测性提升等特性,阿里云也将持续参与并积极贡献诸多特性、组织讨论社区发展。
作为Linux基金会下的开源项目,Valkey社区将具有更高的开放性,会一如既往地听取用户的心声。可以说,它是一个真正由社区开源精神驱动演进的项目,相信其会成为更多用户的选择。目前Valkey在GitHub上已经收到超过1万star,这也正是广大开发者和用户真心诉求的体现。
3. 阿里云对Redis开源社区的贡献
阿里云是最早参与到Redis开源社区贡献的公司之一,最早可追溯至Redis 4.0时期。Redis虽然已经是一款足够优秀的开源产品,但在实际部署和生产中,用户在稳定性、可靠性等方面依然面临诸多问题。在长期使用过程中,开源用户也向社区提出了诸多发展性需求。对此,阿里云Tair云原生内存数据库团队在内部不断持续打磨,并把这些积累都回馈给了开源社区,包括:
- PSYNC2的持续改进,如断线重连、实例重启、数据过期、命令重写等多种场景进行了多轮修复和优化,以保证数据复制的效率和正确性,使得PSYNC2能够应对生成环境中各种复杂的场景;
- AOF持久化机制支持Multi-Part AOF,是直接从Tair功能反向贡献至社区的企业级能力,有效降低抖动和持久化链路复杂性;
- Pipeline模式下的性能优化,让Redis以单线程运行达到百万QPS的上限;
- 增加复制流量、Pubsub连接数、Rehash监控等诸多可观测性指标等等。
除了Commit和核心功能,阿里云坚持基于国内Redis用户及亚太区需求来支持开源社区生态并反馈开源。以上提到的Commit很大一部分来自云数据库的客户需求,以及在云上的复制、接入、模块化和可观测等实际问题。在Redis最近3个大release中,来自亚太区的贡献占比超过60%。在过去7年里,阿里云向Redis社区贡献了数百项功能,涵盖稳定性、性能、功能和可观测性等诸多方面。
4. 阿里云Tair云原生内存数据库的发展
阿里云推出云数据库Redis服务已经近十年,遍及各行各业的客户对我们提出了众多稳定性、成本、性能和可靠性等需求。基于用户的需求,在保证对Redis社区版的兼容基础之上,阿里云瑶池数据库团队开发了云原生内存数据库Tair。目前Tair已经在阿里云上服务广泛客户,并且在阿里集团内部各核心链路中深度使用。
当前,阿里云提供的Redis及自研的云原生内存数据库Tair产品均不受本次Redis开源协议变更的影响。未来,我们也将继续在第一时间提供更新的产品版本,满足用户对新版本的需求。
阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。在Valkey的新版本中,阿里云将会为Valkey加入如 TairHash(支持 fields 过期的增强型 Hash 数据结构)、TairString(原生支持 CAD 与 CAS 的 String 数据结构)以及通过SDK的增强来降低服务端故障对客户端的影响等功能。
Tair会继续保持和社区生态的兼容性,使Tair成为低延时、高可靠、服务于实时在线的数据库产品。我们将持续关注用户的需求,并积极参与Valkey的改进和优化工作,与开源社区共同推动Valkey项目的发展。
扩展阅读: