Valkey 是开源、内存式、高性能的键值数据存储。它是 Redis OSS 的简易替代产品。它可用于缓存、会话存储和消息队列等各种工作负载,并可用作主数据库使用。Valkey 可以作为独立进程守护程序运行,也可以在集群中运行,具有复制和高可用性选项。
Valkey 的发展历史
2024 年 3 月,在 Redis 公司宣布 Redis 的未来版本将不再开源之后,Linux 基金会、Redis OSS 开发人员和贡献者联合起来,开发了 Redis OSS 的 7.2 版本,创建了 Valkey 项目。Valkey 项目由 Linux 基金会管理,并在充满活力的开发者社区的贡献下迅速得到改进。 将该项目托管于 Linux 基金会之下,可以向社区保证,开放源代码许可证不会被撤销,也不会受制于单一组织的突发奇想。自该项目创建以来,Valkey 已迅速得到采用。它已被包括 AWS 在内的多个 Linux 发行版、软件提供商和云供应商所采用。
使用 Valkey 有哪些好处
Valkey 提高了应用程序和数据库的性能,而且对开发人员很友好。
性能
所有 Valkey 数据都驻留在内存中,由此实现低延迟和高吞吐量的数据访问。与传统数据库不同,内存式数据存储不需要访问磁盘。内存式数据存储由此能够支持多一倍的操作,以及将响应时间缩短一倍。这导致平均读写操作达到微秒级,每秒支持数百万次操作。
灵活
Valkey 有各种各样的数据类型和数据结构,可以满足您的应用需求。Valkey 数据类型包括:
- 排序集 – 根据值排序的集
- 哈希 – 同于存储字段和值的列表
- 地理空间 – 用于标记存储位置坐标
- HyperLogLogs – 一种概率数据结构,用于估算数据集中的唯一项
- 流 – 日志数据结构消息队列
- 地理空间 – 基于经度/纬度的地图条目,“附近”
简单易用
Valkey 附带有原生数据结构和许多选项,以操作您的数据并与之交互。Valkey 开发人员可以使用一百多种开源客户端。Valkey 支持大多数领先的编程语言和协议,包括 Java、Python、PHP、Perl.、C、C++、C#、JavaScript、Node.js、Ruby、R、Go 等。
复制和持久性
Valkey 采用的是主副本架构,并支持异步复制,用户执行此类复制时可以将数据复制到多个副本服务器。它能够提供更出色的读取性能(因为请求可以在多个服务器间进行拆分)和恢复功能(主服务器发生中断时)。为了实现持久性,Valkey 支持时间点备份(将 Valkey 数据集复制到磁盘)。
开源
Valkey 是一个开源项目,由充满活力的社区提供支持。Valkey 使用伯克利软件发行版(BSD)三条款许可证,允许您自由使用和修改源代码。Valkey 在全球有大规模的贡献者和爱好者社区,为使用内存式缓存引擎带来了许多额外的长期优势。
高可用性和高可靠性
Valkey 以其高性能而闻名。它还支持多节点架构,能够满足运行关键任务生产应用的客户的高可用性需求。Valkey 在单个主节点或集群拓扑中提供主副本架构。这让您可以构建高度可用的解决方案,从而提供一致的性能和可靠性。如果您需要调整群集大小,它还为您提供了多种选项,包括横向扩展、纵向缩减或扩展。这让您的集群能够根据您的需求而发展。
Valkey 密钥有哪些使用案例
我们在下面列出了一些热门的 Valkey 使用案例。
缓存
Valkey 可用于实施高可用性内存缓存,以降低数据访问延迟、提高吞吐量、改善应用性能,并减轻关系数据库或 NoSQL 数据库的负担。Valkey 能够以微秒级的响应时间为频繁请求的项目提供支持,并支持您轻松扩展以满足更高负载的需求,而无需增加昂贵的后端。使用 Database 缓存的常见示例包括:数据库查询结果缓存、持久性会话缓存、网页缓存,以及缓存频繁使用的对象(例如映像、文件和元数据)等。
聊天、消息收发和队列
Valkey 支持发布/订阅、模式匹配和各种数据结构,例如列表、排序集和哈希。这使得 Valkey 能够支持高性能的聊天室、实时评论流、社交媒体信息以及服务器内部通信。借助 Valkey 列表数据结构,客户能够轻松实施轻量级队列。这类列表提供了原子操作和屏蔽功能,适用于各种需要可靠消息代理或循环表的应用程序。
会话存储
作为具备高可用性和持久性的内存式数据存储,Valkey 是应用程序开发人员用来为 Internet 级应用程序存储和管理会话数据的常见选择。Valkey 可提供管理会话数据(如用户配置文件、凭证、会话状态和用户特定的个性化)所需的微秒级延迟、可扩展性和弹性。
富媒体流
Valkey 提供了快速的内存式数据存储,支持实时流使用案例。Valkey 可存储用于用户配置文件和查看历史记录的元数据、数百万用户的身份验证信息/令牌,以及清单文件,以便 CDN 能够将视频一次性流式传输到数百万移动和桌面用户。
地理空间
Valkey 提供专门构建的内存式数据结构和运算符,以便从规模和速度方面管理实时地理空间数据。它可用于实时存储、处理和分析地理空间数据,使地理空间变得轻松快捷。您可以使用 Valkey 向应用程序添加基于位置的功能,如驾驶时间、驾驶距离和兴趣点。
机器学习
数据驱动的现代化应用程序需要机器学习来快速处理数据量、数据多样性和数据速率,并自动制定决策。对于游戏和金融服务中的欺诈检测、广告技术中的实时竞价,以及共享约会和共享单车中的配对等使用案例而言,能够在几十毫秒内处理实时数据并做出决策至关重要。Valkey 为您提供了快速的内存式数据存储,可快速构建、培训和部署机器学习模型。
Valkey 和 Redis OSS 之间有什么区别
Valkey 7.2 是 Redis OSS 的简易替代产品。与 Redis OSS 相比,Valkey 8.0 的性能有所提高。Valkey 8.0 的一个重要功能是引入了新的 I/O 线程架构,该架构改善了系统的并行度,并提高了执行命令的效率。与 Valkey 7.2 相比,这种新架构支持提升高达 230% 的吞吐量和缩短高达 70% 的延迟。Valkey 8.0 还包括内存优化,可减少多达 20.6% 的内存开销,使用户能够以与早期版本相同的内存量存储更多数据。
AWS 如何支持您的 Valkey 需求
AWS 通过我们完全托管的数据库服务支持 Valkey:Amazon ElastiCache 和 Amazon MemoryDB。这些服务使您可以轻松地在云中设置、操作和扩展 Valkey 工作负载。
适用于 Valkey 的 Amazon ElastiCache
Amazon ElastiCache 是一项与 Valkey 兼容且完全托管的缓存服务,可为您的应用程序提供实时性能。它通过缓存来自主数据库和数据存储的数据,提供微秒级的读写延迟。 成千上万的客户使用 Amazon ElastiCache 来提高其数据库和应用程序的性能、实现更高的规模并优化成本。借助适用于 Valkey 的 ElastiCache,客户可以受益于基于开源技术构建的完全托管的体验,同时利用 ElastiCache 多年来提供的卓越运营、安全性和可靠性。
使用 ElastiCache Serverless,您可以在不到一分钟内设置缓存,并立即根据应用程序的需求进行扩展。与其他支持的引擎相比,适用于 Valkey 的 ElastiCache Serverless 的价格低 33%,基于节点的适用于 Valkey 的 ElastiCache 的价格低 20%。
可通过 AWS Free Tier 免费试用适用于 Valkey 的 ElastiCache。 有关 Amazon ElastiCache 的更多信息,请查看 ElastiCache 文档。
适用于 Valkey 的 Amazon MemoryDB
Amazon MemoryDB 是与 Valkey 兼容的持久型内存数据库服务,可提供超快性能。MemoryDB 使用多可用区事务日志跨多个可用区(AZ)持久存储数据,以实现快速失效转移、数据库恢复和节点重启。借助 MemoryDB,您的所有数据都存储在内存中,使您能够实现微秒级读取,以及个位数毫秒的写入延迟和高吞吐量。
适用于 Valkey 的 MemoryDB 的价格比其他支持的引擎低 30%。可通过 AWS Free Tier 免费试用适用于 Valkey 的 MemoryDB。有关 Amazon MemoryDB 的更多信息,请查看 MemoryDB 文档。