点 未来将来到您所在城市的活动现场。

加入我们,了解 Redis Released

新的 Redis Stack 塞满了数十项新特性

无论您是 Redis 的长期开发人员还是刚刚入门,Redis Stack 都代表着我们提供的新创新。

今天 Redis 很高兴宣布最新版本的 Redis Stack 已正式发布。

Redis 堆栈在 Redis 开源 (OSS) 上进行了扩展,增加了数据处理引擎(比如查询和搜索)与现代数据模型(比如文档 JSON、时间序列和图形)。通过将这种组合赋予开发人员,他们可以构建实时应用程序;这些应用程序不仅易于开发,还易于维护和支持。

这款最新版 Redis 堆栈提供一系列让开发人员翘首以盼的引人注目的功能。以下是重点内容

  • 实时查询和搜索:为嵌套 JSON 文档内的值列表编制索引并进行查询的多值支持。我们还增加了对后缀和中缀通配符搜索的支持。此外,利用 JSON 的查询和搜索功能现在可以直接在 Redis Enterprise 中以活动-活动地理分布方式部署,并具有本地读写延迟 处理嵌套数据时。
  • t-digest:用于估算流数据中分位数的新型概率数据结构。
  • 图形:新型的可微调寻址算法和语言构建,让你能够更轻松地在节点上处理标签并更好地支持资源管理用例。此外,还有 20 多个新函数可用于解决类型转换、三角和对数函数。
  • 时间序列:增强型紧凑和聚合功能显著减少了查询时间序列数据所需的客户端逻辑。
  • 开发人员工具RedisInsight 已更新,增加了新诊断工具,包括内存使用、数据分布、慢日志分析以及对编码数据(如 protobuff、php 反序列化和 Java 序列化对象)的支持。所有这些工具都将加速开发周期。

所有这些 Redis 堆栈功能均可在 Redis Enterprise Cloud 和 Redis Enterprise Software 上使用。

需要更多信息?以下是有关这些增强功能的其他一些详细信息。

实时查询和搜索

利用 Redis 堆栈,你可以编制索引、查询 Redis 哈希或嵌套JSON 文档中驻留的数据,并对该数据执行全文搜索。此最新版本增加了几项开发人员经常提出的改进,让开发人员可以在搜索查询中使用中缀和后缀通配符,例如 `*vatore` 和 `ant?rez`。

开发人员可以创建多值编制索引和查询属性,而与类型无关 (TEXTTAGNUMERICGEOVECTOR),且由JSONPath 定义,该路径指向数组或多个标量值。以前,你只能编制索引标量属性。

例如,设想以下代表一辆自行车的文档

{ 
    …
    "color": "silver",
    …
    "components": [
       { "name": "seatpost", "color": "blue" },
       …
   ]
}

现在,通过单个 JSONPath `$..color`,你可以对文档中所有颜色字段进行索引,而无论它们在文档中的位置如何。(请参阅 RedisSearch 发布说明。)

我们还更新了 JSONPath 解析器,改进了性能并修复了 bug。

t-digest

Redis Stack 包含一组有用的 概率性数据结构。通过概率性数据结构,开发者可以控制返回结果的准确性,同时提高性能并减少内存。这些数据结构非常适合分析流数据和大数据集。

在此最新版本中,Redis Stack 现包括一个新的概率性数据结构,t-digest,用于根据数据流或大量浮点值数据集估算分位数。你可以使用它来回答以下问题:

  • 数据流中多少分数小于给定值? 
  • 数据流中哪些值小于 p % 的值?(即,p 百分位数是多少?) 
  • p1 百分位数和 p2 百分位数之间的平均值是多少?
  • 数据流中第 n 大/小值是多少?(排名[倒数]为 n 的值是多少?)
  • 一只没有载重燕子的 空气速度是多少?好吧,可能不是这个问题。

图形和时间序列

Redis Stack 还具有专用于 时间序列 数据和高度连接数据(图形)的专用数据结构,每个数据结构都有自己强大的查询引擎。

很多用户都在将我们的图形功能用于资源、身份和访问管理用例。将数据建模为图形可以帮助你确保在正确的时间,正确的实体拥有对正确资源的正确访问权限,其中实体和资源都可以是分层组的成员。

Redis Stack 的最新版本进一步增强了该体验。我们添加了新的路径算法,用于查找在给定的一对节点之间(或从给定的节点开始)的成本或长度(可选)受限的最小权重路径。我们还添加了用于添加和删除节点标签、更改节点属性和边属性以及删除路径的语言构造。我们有 29 个新函数,涵盖类型转换、三角和对数函数。最后,所有写入查询现在都以原子方式执行。(原子性 是保证每个查询要么成功,要么失败,并且没有副作用。无论何时发生故障,都会从撤消日志中回滚查询的影响。)(有关更多详细信息,请参阅 图形发布说明。)

在推进我们的时间序列功能方面,我们增加了检索压缩桶的最新(仍为开放状态)的聚合结果的能力。针对连续信号的样本以非恒定频率出现的情况,我们引入了一个新的聚合器:加权平均,以更准确地估算一段时间内的平均值。新增的空值插补功能可插补或重复上一个值来填充空桶。此外,您现在可以控制桶时间戳的报告方式(桶的开始时间、中间时间或结束时间),还能控制压缩规则的对齐方式。还引入了一组新的缩减函数。(请见时间序列发行说明。)

开发人员工具

RedisInsight 是 Redis 和 Redis Stack 的理想开发助手。它可用于视化和优化 Redis 数据。随着我们推出新功能,RedisInsight 还能帮助您借助引导式教程了解我们的最新创新。

最新的RedisInsight 增强了诊断功能。数据库分析功能可帮助您优化性能和内存使用。它会显示数据类型分布、内存分配、以及按消耗的内存、键长和键计数排序的顶层键和命名空间。新的慢日志工具让您能更轻松地对性能问题进行故障排除。您还可以借助新添加的格式化程序(JSON、HEX、MessagePack、ASCII 等)验证数据。

开始使用 Redis Stack

最新版本的 Redis Stack 有两个版本:基于 Redis 6.2 构建的 Redis Stack 6.2.6,以及基于 Redis 7.0 构建的 Redis Stack 7.0.6,这是一个候选版本。

您可以选择以下方式之一来安装 Redis Stack 并开始使用它

新的 Redis Stack 功能现已在 Redis Enterprise Cloud 和 Redis Enterprise Software 上提供。

在启动并运行了 Redis Stack Server 之后,您可以立即利用 RedisInsight 来视化、分析和优化您的 Redis 数据。

选择您所选语言的客户端库,然后参考我们针对 .NET、Node.js、Python 和 Spring 提供的教程,开始编码。如需深入了解 Redis Stack 的查询和搜索功能,请注册我们的免费课程,RU204:高速存储、索引和查询 JSON

Redis Stack 的下一步是什么?

在下一个 Redis Stack 版本中,我们计划引入触发功能的其他机制。具体而言,我们计划包含一个嵌入式 JavaScript 引擎。由事件触发流到达、与创建/更新/删除操作同步或在给定时间安排的函数可以用 JavaScript 编写。这将允许您在数据库中执行业务逻辑,结合 Redis Stack 的查询和搜索等能力。通过在服务器端处理数据,触发功能可以显著降低更新的延迟并减少过时数据。 

下一个 Redis Stack 版本计划在 2023 年春季发布,但您现在可以预览其可编程性功能。在我们的扩展 Redis 中的数据库触发功能 博客文章中,我们将演示如何编写对 Redis 中的数据更改做出反应的函数。

注意:为了为 Redis 社区提供更多自由和清晰度,现在将根据新双重许可证提供 Redis Stack:我们 Redis 源代码可用许可证(RSALv2)的新版本以及服务器端公共许可证(SSPLv1)。