dot Redis 8 发布了——而且它是开源的

了解更多

你好,Redis Stack

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

前言

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

要构建提供实时体验的应用,你需要一个能够以最快的响应时间(最好在毫秒以下)处理任何请求的数据库,无论是简单的对象检索、搜索还是复杂的聚合。其原理很简单:在典型的应用中,每一次用户交互都会产生对数据库的多次调用,这可能导致显著的开销;如果再算上最终用户和应用之间的网络往返延迟,数据库中多花费的每一毫秒都会使得提供实时最终用户体验变得更加困难。

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

到目前为止我们做了什么?

正如 DB-Engines 在过去 24 个月中的趋势所清晰显示的那样,增长最快的数据模型是键/值、搜索、文档、图和时间序列。这一趋势还表明,选择使用关系数据库来建模应用的开发人员越来越少。

事实证明,在过去的四年里,我们投入精力构建了多个专用数据引擎,这些引擎通过现代数据模型和数据处理能力(如搜索、文档、图、时间序列和概率数据结构)扩展了 Redis 的核心键/值数据结构功能。

这些引擎作为 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 包含 Java、JavaScript 和 Python 中领先的官方 Redis 客户端。这些客户端还包括我们新的对象映射库套件,它们提供了对开发人员友好的抽象,只需几行代码即可提高效率。这些库被称为适用于 .NETNode.jsJavaPython 的 Redis OM,它们还使得与 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 等)、重新连接、服务器发现等。
  • 管理执行逻辑(线程、异步 I/O 等)
  • 提供一个 API 用于执行任意 Redis 命令
  • 以符合语言习惯的方式提供 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。您还可以使用基于 StackExchange 构建的 redis-om-dotnet 库。

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

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

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

是的,您可以使用我们的 Replica-Of 解决方案,在不停机的情况下将您的数据库迁移到我们的完全托管云服务。