dot 您所在的城市即将迎来快速发展的未来。

加入我们参加 Redis Released

您好,Redis Stack

今天,我们很高兴宣布推出 Redis Stack。Redis Stack 将领先的 Redis 模块的功能整合到一个单一产品中,让开发人员能够轻松地 使用 Redis 的速度和稳定性构建现代的实时应用程序

序言

在 Redis,我们正在构建一个实时数据层,以满足对响应式、低延迟应用程序和服务的普遍需求。

要构建提供实时体验的应用程序,您需要一个能够处理任何请求的数据库,无论是简单的对象检索、搜索还是复杂的聚合,并提供尽可能快的响应时间,最好在毫秒内完成。 理由很简单:在典型的应用程序中,每个用户交互都会产生多个对数据库的调用,这会导致大量的开销;如果您在此基础上再加上最终用户和应用程序之间网络的往返延迟,那么在数据库中花费的每一毫秒都会让您更难以提供实时最终用户体验。   

无论数据模型如何,这都适用,无论是键值、文档、流、图形、时间序列还是概率数据结构。

我们迄今为止做了什么?

正如 DB-Engines 网站上过去 24 个月的趋势所表明的那样,发展最快的数据库模型是键值、搜索、文档、图形和时间序列。此趋势还表明,越来越少的开发人员选择使用关系型数据库为他们的应用程序建模。

事实证明,我们在过去四年中一直在构建几个专用数据引擎,这些引擎使用现代数据模型和数据处理功能(例如搜索、文档、图形、时间序列和概率数据结构)扩展了 Redis 的核心键值数据结构功能。 

我们使用与开源 Redis 相同的设计原则,从头开始构建这些引擎,这些引擎以内存架构实现,并使用 C 或 Rust 编写的有效代码库,使开发人员能够以尽可能低的延迟运行各种数据工作负载。

在听取了社区和客户的意见后,我们意识到需要简化领先 Redis 模块及其功能的开发人员体验,以及支持其功能的文档和客户端。我们希望帮助开发人员从他们开始使用 Redis 的那一刻起就能获得充分的生产力。 

这就是我们创建 Redis Stack 的原因。

Redis Stack

Redis Stack 将领先的 Redis 模块统一到一个单一产品中。 这样一来,便可以轻松地开始使用基于 Redis 的搜索、文档、图形和时间序列功能进行构建。

Redis Stack 包含三个组件

  1. Redis Stack Server 将开源 Redis 与 RediSearchRedisJSONRedisGraphRedisTimeSeriesRedisBloom 相结合。
  2. RedisInsight 是一款功能强大的工具,用于可视化和优化 Redis 数据,使实时应用程序开发比以往任何时候都更轻松、更有趣。
  3. Redis Stack Client SDK 包含领先的官方 Redis 客户端,包括 Java、JavaScript 和 Python。 这些客户端还包含我们新的对象映射库套件,这些库提供了易于开发人员使用的抽象,使您只需几行代码即可实现生产力。这些库被称为 Redis OM for .NETNode.jsJavaPython,这些库也比以往更容易与主要应用程序框架(如 Spring、ASP.NET Core、FastAPI 和 Express)集成。
three redis stack icons

开始使用 Redis Stack

Redis Stack 现在可用于 Redis 6.2,我们还发布了 Redis 7.0 的候选版本。

我们提供了多种快速开始使用 Redis Stack 的方法

Redis Stack Server 运行起来后,您可以立即利用 RedisInsight 来可视化、分析和优化 Redis 数据。RedisInsight 包含一系列指南,引导您完成多个 Redis Stack 用例。

在客户端方面,我们支持多个领先的 Redis 客户端中的 Redis Stack,包括 Jedis (Java)、redis-py (Python) 和 node-redis (JavaScript),以及我们的新的对象映射库(redis-om-springredis-om-pythonredis-om-noderedis-om-dotnet)。
您可以克隆 我们支持的每种语言的示例存储库,以开始开发您新创建的数据库。

Redis 和 Redis Stack

我们对 Redis Stack 能够实现的实时应用程序的未来感到兴奋。但我们要明确表示,Redis Stack 不是 Redis 的替代品。

Redis 是一项核心开源技术,我们对其持续发展的关注没有改变。您始终可以选择下载、构建、安装和运行开源 Redis。

准备好运行 Redis Stack 后,您可以使用 Redis 复制机制或加载您的 RDB 或 AOF 文件轻松地 迁移您的数据

redis stack illustration

许可

Redis Stack 的所有代码库组件都是开放的,供所有人免费使用,但我们仍然希望明确说明 Redis Stack 的许可模型,因为我们更新了许可证,如 此博客 中所述。

redis stack licensing icons

总结

我们致力于继续开发 Redis 作为开源项目,支持全球最大的开发人员社区之一,并与我们不断增长的项目活跃贡献者合作。 

我们将继续为 Redis Stack 添加功能,使开发人员能够快速轻松地开发完全基于 Redis 的现代实时应用程序。

要详细了解 Redis Stack 及其功能,请收看我们现已提供按需观看的 RedisDays 活动 上提供的关于 Redis Stack 的深入讨论会。

我们还整理了一些对预期问题的快速解答,在简短的常见问题解答部分中。
最后,我们希望获得您对 Redis Stack 的反馈。请在 Redis 邮件列表 上给我们留言,或加入 Redis Discord 服务器,让我们知道您的想法。

常见问题解答

Redis Stack 的组件有哪些?

Redis Stack 是一款单一软件包,其中包含开源 Redis 以及领先的 Redis 模块 (Redis Stack Server) 和 RedisInsight。

对于 Redis Stack Server 的初始版本,我们将包含五个模块:RedisJSON、RedisSearch、RedisGraph、RedisTimeSeries 和 RedisBloom。

Redis Stack 受官方 Redis 客户端和对象映射库的支持,使开发人员能够使用多个应用程序框架(包括 Spring、ASP.Net Core、Express 和 FastAPI)轻松使用高级 Redis Stack 功能。

Redis Stack 为开发人员提供了哪些功能?

Redis Stack 使开发人员能够: 

  • 索引和查询 Redis 数据,运行聚合,执行全文搜索 
  • 运行高级向量相似度搜索 (KNN)
  • 高效地存储和操作嵌套的 JSON 文档
  • 将构建和模型关系作为属性图
  • 存储、查询和聚合时间序列数据
  • 利用快速、节省空间和计算资源的概率数据结构
  • 使用 RedisInsight 轻松可视化、调试和分析 Redis 数据

您是否会向 Redis Stack 添加更多功能?

如果满足以下条件,我们将考虑向 Redis Stack 添加新功能,甚至添加模块

  1. 我们看到了社区的需求
  2. 新功能符合 Redis 的愿景
  3. Redis Inc. 工程团队可以正式支持添加

为什么 RedisGears 不包含在第一个 Redis Stack 版本中?

RedisGears 为 Redis 添加了数据库触发器、流处理、分布式函数和完整可编程性。

今年晚些时候,一旦对 JavaScript 的支持正式发布,我们将把 RedisGears 添加到 Redis Stack 中。

我可以免费自行管理 Redis Stack 吗?

是的,可以!

什么是 Redis 对象映射库?

Redis 对象映射库在 Redis 命令 API 之上提供了一层抽象,就像 ORM 对 SQL 数据库一样。让我们区分核心 Redis 客户端库和 Redis 对象映射库。

核心 Redis 客户端库具有以下职责

  • 实现 Redis 协议(RESP 等)。
  • 管理连接(TCP 等)、重新连接、服务器发现等。
  • 管理执行逻辑(线程、异步 io 等)
  • 公开用于执行任意 Redis 命令的 API
  • 以语言特有的方式公开 Redis 命令
  • 通过连接字符串连接到任何 Redis 部署

对象映射库提供额外的杠杆作用

  • 允许开发人员用尽可能少的代码行来实现常见的 Redis 用例。目前,这包括域建模和流畅查询 API。将来,我们将添加对其他常见 Redis 用例的支持,包括缓存、会话存储、速率限制、排行榜 和去重器。
  • 公开用于 Redis Stack 提供的功能的高级 API
  • 在不暴露底层 Redis 命令的情况下提供 Redis 的好处
  • 与主要应用程序框架集成(例如,Spring、ASP.NET Core、FastAPI、Express)

这些对象映射库始终依赖于一个或多个核心 Redis 库。

是否有适用于 Redis Stack 的 .NET 客户端?

目前,建议 .NET 开发人员使用的客户端是 StackExchange,它没有得到 Redis, Inc. 的正式支持。您可以使用 NRediSearch 来扩展该客户端以支持 RediSearch,使用 NRedisGraph 来支持 RedisGraph,以及使用 NRedisTimeSeries 来支持 RedisTimeSeries。您也可以使用 redis-om-dotnet 库,该库建立在 StackExchange 之上。

我可以在 Redis Enterprise Cloud 上使用 RedisInsight 吗?

RedisInsight 尚未在 Redis Enterprise Cloud 上提供。但是,您可以使用 RedisInsight 应用程序连接到您的云数据库。我们计划在今年晚些时候将 RedisInsight 添加到云中。

我可以轻松地将我的 Redis Stack 数据库迁移到 Redis Enterprise Cloud 吗?

是的,您可以利用我们的 Replica-Of 解决方案将您的数据库迁移到我们完全托管的云服务,而不会造成任何停机时间。