什么是 Valkey?

Valkey 是一种内存中的键值对数据存储区,可用于满足各种应用构建需求,包括缓存、消息队列和会话存储。您还可以将其用作主要内存中数据库,将数据存储在 RAM 中,以实现快速读写。

作为 NoSQL 数据库,Valkey 的架构比关系型数据库更灵活,后者以严格的列和行来存储数据。

Valkey 使用简单的键值对方法来存储数据,其中一个值映射到一个唯一标识符(即键)。这样,在直接按键检索数据时,查找速度会非常快。它还可灵活地适应各种数据类型,包括字符串、集合、列表、哈希和流。

想要直接跳到设置 Valkey 集群?了解如何开始使用 Memorystore

要点总结

Valkey 是一个开源键值对数据存储区。它以极低的延迟时间而闻名,非常适合缓存、消息队列和需要实时数据的应用。以下是 Valkey 的主要功能简介:

  • 内存中数据存储区:主要将数据存储在 RAM 中,以实现极快的读写速度。
  • 键值对方法:以键值对形式存储数据,可灵活处理各种数据类型,并支持快速查找。
  • Redis 替代方案:Valkey 与 Redis 采用相同的代码库,但仍保持开源。


Valkey 常见问题解答

Valkey 可以存储各种数据类型,包括字符串、哈希、列表、集合和有序集合。它还支持更高级的数据类型,如流、地理空间索引、位图和向量,因此可作为一种多功能工具,用于各种应用,包括 AI 智能体。


使用 Valkey 等内存中数据库的主要原因是速度快。从 RAM 访问数据比从磁盘读取数据更快,这使得 Valkey 能够实现极低的延迟,通常在亚毫秒范围内。这种速度对于实时缓存和快速移动分析等应用场景至关重要,因为这些场景需要立即访问数据。


主要区别在于它们构建、存储和检索数据的方式。Valkey 等键值对数据库将数据存储为唯一键的集合,每个键都与一个值配对。这种简单模型在按键查找数据时可以快速检索。而关系型数据库则将数据存储在表中,并使用 JOIN 来关联相关数据。对于需要从多个集合中拉取数据的查询,此模型可提供最佳性能。


使用 Valkey 的优势

Valkey 兼具速度和灵活性、可伸缩性以及处理严苛工作负载所需的弹性。

高速内存中数据库

Valkey 主要将数据存储在 RAM 中而不是磁盘中,因此可提供极高的吞吐量和极低的延迟时间,非常适合对速度要求极高的应用。

开源

作为一个开源项目,Valkey 受益于社区贡献,并且可以灵活地集成和自定义,而没有许可限制。


高可用性

Valkey 支持主从复制,可实现自动故障切换和数据冗余,从而最大限度地减少停机时间并提供持续服务。

数据持久化

Valkey 虽然主要是一个内存中数据库,但它提供了持久化选项以防止数据丢失。它可以通过 RDB(Redis 数据库)快照和 AOF(仅附加文件)日志将数据保存到磁盘,以确保即使在重启后数据也能持久保存。


无缝横向扩缩

Valkey 旨在高效地将数据分布到多个节点和集群中。这意味着您可以轻松扩容,以应对不断增加的流量,而不会影响性能。


实时通信

Valkey 提供 Pub/Sub 消息传递系统,可在各种应用或单个应用的不同部分之间实现实时通信。这可以支持实时聊天和实时数据 Feed 等功能。


Valkey 的常见应用场景

Valkey 等内存中数据存储区特别适合依赖极低延迟的应用和函数。其中可能包括:

  • 缓存:Valkey 可以充当速度较慢的、基于磁盘的数据库前面的高速缓存层。频繁访问的数据可以存储在 Valkey 中,从而显著降低主数据库的负载并缩短响应时间。
  • 消息队列:Valkey 的 Pub/Sub 功能使其成为消息代理的绝佳选择。它可用于促进不同服务或微服务之间的实时通信,支持聊天应用和通知等应用场景。
  • 实时分析:对于需要实时处理和分析数据的应用(例如包裹跟踪器、导航应用或游戏排行榜),Valkey 的速度使其成为理想之选。
  • 会话存储:在电子商务网站或社交媒体平台等 Web 应用中管理用户会话时,需要快速访问用户偏好设置、登录状态和购物车内容。Valkey 提供了一种快速可靠的方式来存储和检索此会话数据。
  • 机器学习:Valkey 的低延迟和向量搜索功能使其成为使用机器学习的应用的强大数据库。您可以存储并快速搜索向量嵌入(文本或图片等数据的数值表示形式),以执行复杂的相似性搜索。这可用于实时向用户推荐相似的产品、文章或媒体。

Valkey 与 Redis 的比较

Valkey 最初是从 Redis 7.2 分支出来的,这意味着它从相同的代码库开始,并共享一些基本特征和功能。与 Valkey 一样,Redis 也是一种内存中键值对数据存储区,可提供高吞吐量并支持一系列数据结构。两者都以高可用性和可伸缩性而闻名。

核心区别在于 Valkey 是开源的,在宽松的 BSD 许可下发布,因此开发者可以自由使用、修改软件并做出贡献。

2024 年,Redis Inc. 改用限制更严格的“源代码可用”许可,Valkey 应运而生。为了向社区提供开源替代产品,几位核心 Redis 贡献者齐心协力,基于 Redis 的最后一个开源版本发布了 Valkey。

Valkey 采用协作式、社区主导的开发方法,由 Linux 基金会项目的贡献成员决定路线图和新功能,主要云供应商(包括 Google Cloud)也参与其中。

自 Valkey 8.0 以来,Valkey 引擎进行了重大改进,重点是增强了向量搜索功能、改进了集群管理和多线程命令执行功能,即能够跨多个 CPU 核心并行处理命令。

使用 Google Cloud 自行管理 Valkey 部署

对于那些想要更精细的控制、自定义或特定部署配置的用户,可以将 Valkey 手动部署到 Google Cloud 的计算基础设施上。此方法可让您全面监控环境。

  • Compute Engine(虚拟机):启动 Google Compute Engine 实例(虚拟机),并直接安装开源 Valkey 服务器。这样,您就可以完全自主地控制配置、扩缩参数和底层操作系统。
  • Google Kubernetes Engine (GKE):Valkey 可以使用 Docker 轻松容器化,并作为 Pod 或有状态应用部署在 GKE 集群上。对于已使用 Kubernetes 的应用,这可能是一种非常适合的方法,可提供强大而先进的编排功能。


使用 Google Cloud Memorystore for Valkey 获取全托管式服务

Memorystore for Valkey 是一项全托管式服务,可在云中提供高性能、高可用且可扩缩的 Valkey 服务。

它提供了内存中数据库的优势,同时避免了管理底层基础设施所带来的运营和财务负担。

Google Cloud 负责处理管理工作负载,包括修补、安全和扩缩,因此您可以专注于使用实时数据构建应用。

  • 托管式:Google 会处理管理 Valkey 实例的运营开销,包括预配、修补和故障切换。
  • 性能:Memorystore for Valkey 利用 Google Cloud 的基础设施,为要求严苛的实时应用提供所需的低延迟和高吞吐量,实现亚毫秒级数据访问。
  • 可用性:Memorystore 会自动跨多个可用区复制数据,提供高达 99.99% 的 SLA。
  • 可伸缩:Memorystore 可无缝扩缩 Valkey 实例,无需停机,以满足应用不断变化的需求。
  • 安全:Memorystore 受到强大的安全功能保护,包括虚拟私有云 (VPC) 连接、全天候监控以及身份和访问权限管理 (IAM)。
  • 非常适合 AI 应用:Memorystore for Valkey 支持近似最近邻 (ANN) 向量搜索和精确最近邻 (KNN) 向量搜索,是生成式 AI 的理想低延迟数据存储区。

借助 Memorystore 更进一步

获享 300 美元赠金,开始在 Google Cloud 上构建项目。