Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。

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_Social.png


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已经在阿里云上服务广泛客户,并且在阿里集团内部各核心链路中深度使用。

瑶池+tair@2x.png

当前,阿里云提供的Redis及自研的云原生内存数据库Tair产品均不受本次Redis开源协议变更的影响未来,我们也将继续在第一时间提供更新的产品版本,满足用户对新版本的需求。


阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。在Valkey的新版本中,阿里云将会为Valkey加入如 TairHash(支持 fields 过期的增强型 Hash 数据结构)、TairString(原生支持 CAD 与 CAS 的 String 数据结构)以及通过SDK的增强来降低服务端故障对客户端的影响等功能。


Tair会继续保持和社区生态的兼容性,使Tair成为低延时、高可靠、服务于实时在线的数据库产品。我们将持续关注用户的需求,并积极参与Valkey的改进和优化工作,与开源社区共同推动Valkey项目的发展。



扩展阅读:

Redis 的基本介绍与日常使用

云原生内存数据库Tair的演进之路

云原生数据库Tair产品特性与核心能力

使用Redis企业版(Tair)构建实时推荐系统

Tair for Redis数据闪回:任意时间点数据恢复

如何让聊天机器人更懂你?Tair向量检索给你答案

使用LLM+Tair构建具备私域知识的专属Chatbot

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
缓存 NoSQL Redis
Python缓存技术(Memcached、Redis)面试题解析
【4月更文挑战第18天】本文探讨了Python面试中关于Memcached和Redis的常见问题,包括两者的基础概念、特性对比、客户端使用、缓存策略及应用场景。同时,文章指出了易错点,如数据不一致和缓存淘汰策略,并提供了实战代码示例,帮助读者掌握这两款内存键值存储系统的使用和优化技巧。通过理解其核心特性和避免常见错误,可以提升在面试中的表现。
71 2
|
4月前
|
存储 消息中间件 缓存
Redis缓存技术详解
【5月更文挑战第6天】Redis是一款高性能内存数据结构存储系统,常用于缓存、消息队列、分布式锁等场景。其特点包括速度快(全内存存储)、丰富数据类型、持久化、发布/订阅、主从复制和分布式锁。优化策略包括选择合适数据类型、设置过期时间、使用Pipeline、开启持久化、监控调优及使用集群。通过这些手段,Redis能为系统提供高效稳定的服务。
|
8天前
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
36 2
|
3天前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
2月前
|
数据采集 存储 NoSQL
Redis 与 Scrapy:无缝集成的分布式爬虫技术
Redis 与 Scrapy:无缝集成的分布式爬虫技术
|
3月前
|
NoSQL 算法 Java
技术好文:Redis实现分布式锁的7种方案
技术好文:Redis实现分布式锁的7种方案
|
3月前
|
存储 缓存 NoSQL
SpringBoot配置第三方专业缓存技术Redis
SpringBoot配置第三方专业缓存技术Redis
38 4
|
2月前
|
NoSQL Cloud Native Redis
|
2月前
|
NoSQL 安全 Java
技术好文:Redis分布式锁的正确实现方式
技术好文:Redis分布式锁的正确实现方式
29 0
|
3月前
|
存储 消息中间件 缓存
Redis:内存数据存储与缓存系统的技术探索
**Redis 概述与最佳实践** Redis,全称Remote Dictionary Server,是流行的内存数据结构存储系统,常用于数据库、缓存和消息中介。它支持字符串、哈希、列表等数据结构,并具备持久化、主从复制、集群部署及发布/订阅功能。Redis适用于缓存系统、计数器、消息队列、分布式锁和实时系统等场景。最佳实践包括选择合适的数据结构、优化缓存策略、监控调优、主从复制与集群部署以及确保安全配置。
56 3

相关产品

  • 云数据库 Tair(兼容 Redis)