Redis的完全开源的替代方案Valkey
Valkey 是由 Linux 基金会发起的一个开源、高性能的键值存储系统,它是 Redis® 的一个完全开源的替代方案。
1. 为什么会出现 Valkey?
由于 Redis 在 2024 年初宣布更改其开源协议(从宽松的 BSD 协议改为更具限制性的 SSPLv1 和 RSALv2),引发了社区的连锁反应。
为了保持核心技术的真正开源和社区驱动,亚马逊 (AWS)、谷歌 (Google Cloud)、甲骨文 (Oracle)、爱立信等科技巨头联合 Linux 基金会,基于 Redis 最后一个开源版本(7.2.4)创建了分支,并将其命名为 Valkey。
2. Valkey 的核心特性
Valkey 延续了 Redis 的强大功能,并在社区的推动下进行性能优化:
- 高性能内存存储: 采用内存驻留数据集,提供极低的延迟(亚毫秒级)和极高的吞吐量。
- 丰富的数据结构: 支持字符串(Strings)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)、哈希(Hashes)、位图(Bitmaps)、地理空间索引(Geospatial indices)和流(Streams)。
- 全兼容性: Valkey 旨在成为 Redis 的“掉入式(Drop-in)”替代品。它支持现有的 Redis 协议(RESP)、API 以及各种客户端库。
- 高可用与扩展性: 支持主从复制(Replication)、哨兵模式(Sentinel)和集群模式(Cluster),能够横向扩展到数千个节点。
- 多线程增强: Valkey 正在进一步优化多线程架构,以更好地利用现代多核 CPU。
3. Valkey vs. Redis
| 特性 | Valkey | Redis (新版) |
|---|---|---|
| 开源协议 | BSD 3-Clause (完全开源,商业友好) | SSPLv1 / RSALv2 (非传统开源) |
| 治理模式 | 社区驱动 (Linux 基金会) | 公司驱动 (Redis Inc.) |
| 生态兼容 | 完全兼容 Redis 7.2 协议 | 原生协议 |
| 未来方向 | 侧重于性能优化和社区贡献 | 侧重于集成更多企业级专有功能 |
4. 为什么要选择 Valkey?
- 无许可风险: 对于企业用户,BSD 协议意味着你可以自由地集成、修改和分发,而不用担心复杂的授权法律风险。
- 云厂商支持: 由于各大云服务商(如 AWS Elasticache, Google Memorystore)都已宣布支持 Valkey,未来在云端迁移和部署会非常顺滑。
- 活跃的生命力: 大量原 Redis 的核心贡献者已经转移到了 Valkey 项目中,技术迭代保持着极高的速度。
5. 如何迁移?
由于 Valkey 保持了协议级兼容,迁移通常非常简单:
- 客户端: 现有的 Redis 客户端(如 Jedis, redis-py, go-redis)可以直接连接 Valkey。
- 命令:
valkey-cli的用法与redis-cli几乎完全一致。 - 数据: Valkey 可以读取 Redis 的
.rdb和.aof文件。