这篇文章资料来自于网络,是对部分知识整理,这里只是记录一下,仅供参考。
前言
Redis 作为最受欢迎的内存型 NoSQL 键值存储系统之一,一直都很受广大用户的推崇。然而,由于 Redis 调整了许可政策,这一举措在开源社区引起了广泛争议。
2024 年 3 月 20 日https://redis.io/blog/redis-adopts-dual-source-available-licensing/,Redis Labs 宣布从 Redis 7.4 开始,将 BSD-3-clause 源码使用协议修改为 RSAv2 和 SSPLv1 协议。该变化意味着 Redis 在 OSI(开放源代码促进会)定义下不再是严格的开源产品。
包括亚马逊云科技在内的40多家公司持续投入在Valkey项目上。
实际上,Redis 项目的贡献除了 Redis Labs 的成员外,还有多位来自于其他公司的成员,贡献比例逐年上升,今年甚至达到了 50% 左右。这些核心成员对 Redis Labs 更改 Redis 协议的变动并不认可,所以由 Linux 基金会组织成立了 Valkey 开源项目。Valkey 采用 BSD 源码使用协议,在 2024 年 4 月 16 日推出了 7.2.5 版本,该版本从 Redis 7.2.4 fork 而来,可以帮助用户无缝完成切换。
自成立至今,Valkey 项目蓬勃发展,包括亚马逊云科技在内的 40 多家公司持续投入,并贡献了很多性能和功能的改进。2024 年 10 月 2 日,Valkey 8.0.1 版本正式发布。与此同时,亚马逊云科技也增加了 Valkey 的托管数据库版本,于 2024 年 10 月 8 日推出了 Amazon ElastiCache/MemoryDB for Valkey 7.2 的托管数据库版本,并降低了价格;2024 年 11 月 21 日,推出了 Amazon ElastiCache for Valkey 8.0 的托管数据库版本。
无论是对托管数据库成本上的降低,还是开源 Valkey 性能上的改进和功能上的创新,Valkey 都给您提供了更加丰富的选项来升级迭代您的内存数据库或缓存系统。因此,本篇博客聚焦于介绍 Amazon ElastiCache/MemoryDB for Valkey 的变化,深入剖析 Valkey 8.0 的性能和功能增强,并会介绍亚马逊云科技推出的 Valkey/Redis 开源客户端 Valkey Glide,以及分享如何从 Redis 切换到 Valkey。
Valkey:开源社区的新希望
为了应对 Redis 的许可变化,Linux 基金会适时推出了 Valkey 项目。该项目旨在打造一个强大的开源替代方案,延续 Redis 的开源精神。
Valkey 基于 Redis 7.2.4 版本进行开发,并采用宽松的 BSD 三条款许可,为项目的可持续发展和社区协作打下了坚实的基础。目前,该项目已得到多家科技巨头的支持,包括 Amazon Web Services、Google Cloud、Oracle、Ericsson 和 Snap Inc. 等。
在 Linux 基金会的引领下,Valkey 将建立开放透明的治理机制,积极吸纳社区力量,共同推动项目的发展。
- 1.托管Valkey7.2、托管Redis7.1性能均优于自建Redis7.2.4。
- 2.随着新的版本迭代,新的Valkey与Redis托管版本性能优于老的托管版本。
Valkey vs. Redis:关键区别
Valkey 与 Redis 对比速查
特性 | Valkey | Redis |
---|---|---|
许可证 | 开源(BSD 三条款) | 源码可用(非完全开源) |
社区支持 | 社区驱动,有 AWS、Oracle 等巨头支持 | 由 Redis Inc. 提供商业支持 |
性能表现 | 新 I/O 线程模型,支持每秒 119 万请求 | 以高性能著称,具体表现因版本而异 |
多线程 | 优化的多线程架构,支持 I/O 与命令执行分离 | 大多数操作仍为单线程 |
复制机制 | 双通道复制技术 | 主从复制,支持 Redis Cluster |
扩展能力 | 自动集群故障转移,优化的扩展机制 | 支持集群化和分片 |
内存效率 | 改进的字典结构,提高内存使用效率 | 高效内存管理,支持内存淘汰策略 |
可观测性 | 支持每个 slot 的精细化监控指标 | 基础监控和指标收集 |
RDMA 支持 | 提供实验性 RDMA 支持 | 暂无原生 RDMA 支持 |
平台支持 | Linux、macOS、OpenBSD、NetBSD、FreeBSD | Windows、Linux、macOS |
发展重点 | 追求高吞吐量和低延迟 | 注重高性能和数据持久性 |
应用场景 | 缓存、实时数据处理、消息代理 | 缓存、会话管理、实时分析 |
概述
Redis 和 Valkey 都是强大的键值存储系统,在缓存、实时数据处理等场景中表现出色。随着 Valkey 作为社区驱动的 Redis 替代方案迅速崛起,了解两者的关键差异变得尤为重要,以便在技术选型时做出明智决策。
- Redis:作为一款成熟的内存数据结构存储系统,Redis 广泛用于数据库、缓存和消息代理等场景。它支持多种数据结构,如字符串、哈希表、列表和集合。Redis 以其卓越的性能、易用性和丰富的功能特性而备受青睐。
- Valkey:作为 Redis 的开源替代方案,Valkey 得到了多家知名科技公司的支持。它致力于打造一个完全开源且高性能的数据结构服务器,并在可扩展性、多线程支持和功能特性上寻求突破和创新。
许可证与社区生态
- Redis:近期 Redis 修改了其许可政策,虽说源代码依然允许查看,但商业使用会受到一定限制。这引发了开源社区对其未来发展的担忧。目前,Redis 由 Redis Inc. 进行维护,并提供商业支持服务。
- Valkey:坚定地采用 BSD 三条款许可,确保了项目的开源性质和社区主导的开发模式。在 AWS、Google Cloud 等科技巨头的支持下,Valkey 的持续开发和维护得到了强有力的保障。
性能与扩展性
- Redis:长期以来,Redis 都以卓越的性能在业界享有盛誉。它的单线程架构设计简单高效,尤其适合处理小数据量、高并发的场景。
- Valkey:在继承 Redis 高性能的基础上,进一步优化了多线程支持,并显著提升了可扩展性。通过引入新的 I/O 线程模型,Valkey 的性能得到了大幅提升,每秒可处理高达 119 万个请求。此外,Valkey 还增强了自动集群故障转移机制,使得分布式环境下的扩展变得更加容易,集群运维也更加顺畅和高可靠。
可观测性与监控能力
- Redis:提供了基础的监控功能,包括对内存使用、请求速率和连接数等指标的监控,能够满足常规应用的需求。不过,在面对更复杂的运维场景或需要精细化分析时,Redis 的监控能力稍显不足。
- Valkey:相比之下,Valkey 提供了更加细粒度的可观测性功能。它能够精确追踪每个 slot(槽位)的性能指标,帮助用户深入了解系统的使用模式和性能瓶颈。这种细粒度的监控使得运维工作更加高效、便捷,特别适用于需要高精度控制和分析的大规模分布式系统。
内存效率与 RDMA 支持
- Redis:目前尚未提供原生的 RDMA支持,这在一些对延迟和吞吐量极为敏感的高性能场景下可能存在一定局限。此外,Redis 的内存使用效率虽然已经较高,但在某些特定应用中仍有优化空间。
- Valkey:在内存效率方面进行了创新改进,采用了全新的字典结构,显著提升了内存使用效率,使得在相同硬件条件下能够存储更多数据。此外,Valkey 还引入了实验性的 RDMA 支持,这一特性在特定的超高性能网络环境中,如大规模分布式缓存系统,能够显著降低延迟和 CPU 负载,从而带来明显的性能提升。
生态伙伴与发展动力
Valkey 项目背后得到了多家科技巨头的鼎力支持,这不仅增强了项目的可信度,还为未来的发展注入了强劲动力:
- Amazon Web Services (AWS):提供资源和专业技术,助力 Valkey 保持在开源社区的领先地位。
- Google Cloud:深度参与开源治理,积极推动行业的创新与协作。
- Oracle:投入开发力量,促进 Valkey 在各种应用场景中的落地和普及。
- Ericsson:贡献专业的技术经验,帮助全面提升 Valkey 的性能和功能特性。
- Snap Inc.:专注于优化系统的扩展性与处理能力,以满足大规模应用的需求。
这着些科技公司的参与,不仅为 Valkey 提供了丰富的资源和多样化的技术支持,还推动了项目在不同行业和应用场景中的广泛使用。
相比之下,Redis 主要依靠 Redis Inc. 进行维护和商业化运作,重点发展 Redis Enterprise 等商业产品。虽然 Redis 仍然拥有强大的社区支持和成熟的生态系统,但在开源协作的广度和资源投入上,相较于获得众多科技巨头支持的 Valkey,可能略显不足。
选型建议与展望
Redis 和 Valkey 都是卓越的键值存储解决方案,各自具备独特的优势。在进行技术选型时,需要根据实际需求权衡以下几个关键因素:
- 开源许可偏好:Valkey 坚持完全开源,采用 BSD 三条款许可证,而 Redis 已经转变许可模式。如果开源合规和自由使用是优先考虑的因素,Valkey 可能更符合需求。
- 性能需求:对于有极致性能要求、特别是多线程和大规模扩展需求的场景,Valkey 提供了更为先进的多线程支持和 RDMA 等实验性功能,可能具备一定的优势。
- 社区支持力度:Redis 拥有更成熟的生态和社区支持,对于寻求稳定、经过长时间验证的解决方案的团队,Redis 仍然是一个值得信赖的选择。而 Valkey 则背靠多家科技巨头,拥有强大的资源支持,但作为一个较新的项目,其社区生态仍在快速发展中。
- 长期发展规划:如果你的团队重视技术创新并希望拥抱未来的新特性与改进,Valkey 凭借其快速的迭代和创新能力,可能是一个更具前瞻性的选择。
从发展趋势来看,Valkey 正快速追赶 Redis,并在某些方面展现出超越的潜力。例如,Valkey 在多线程性能、内存效率以及 RDMA 支持等特性上已领先一步。随着更多创新功能的引入和持续优化,Valkey 的竞争力将进一步增强。