RedisTimeSeries 1.8 发行说明

添加了时间加权平均聚合器、间隙填充、控制存储桶时间戳的能力、控制压缩规则对齐的能力、新的 reducer 类型,以及在检索压缩时包含最新(可能是部分)原始存储桶样本的能力

Redis 堆栈

要求

RedisTimeSeries v1.8.16 需要:

  • 最低 Redis 兼容版本(数据库):6.0.16
  • 最低 Redis 企业软件版本(集群):6.2.8

v1.8.16(2025 年 1 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:SECURITY:此版本中有安全修复程序。

  • 安全和隐私:

    • #1672 (CVE-2024-51480) 漏洞TS.QUERYINDEX,TS.MGET,TS.MRANGE,TS.MREVRANGE- 潜在的整数溢出,导致越界写入 (MOD-7548)
  • 改进:

    • #1664添加了对 Ubuntu 22 以及 macOS 13 和 14 的支持

v1.8.13(2024 年 3 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:LOW:除非有您想要使用的新功能,否则无需升级。

  • 错误修复:

    • LibMR#51SSL 初始化失败时崩溃 (MOD-5647)
  • 改进:

    • #1593更详细的 LibMR 错误消息

v1.8.12(2023 年 12 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:SECURITY:此版本中有安全修复程序。

详:

  • 安全和隐私:

    • #1506不公开内部命令 (MOD-5643)
  • 错误修复:

    • #1494使用无效参数值时可能发生崩溃
  • 改进:

    • #1516添加了对 CBL-Mariner 2 的支持

v1.8.11(2023 年 7 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:MODERATE:对服务器进行升级编程,但这不是紧急的。

详:

  • 错误修复:

    • #1486使用LATEST,结果可能包含早于fromTimestamp (TS.RANGE,TS.REVRANGE,TS.MRANGETS.MREVRANGE)
    • #1471可能崩溃TS.MRANGE聚合数百万个时间序列时
    • 排名 #1469潜在的内存泄漏TS.MRANGE驱逐后
  • 性能增强:

    • #1476使用多个标签筛选条件 (TS.MGET,TS.MRANGE,TS.MREVRANGETS.QUERYINDEX) (MOD-5338)

v1.8.10(2023 年 4 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:MODERATE:对服务器进行升级编程,但这不是紧急的。

详:

  • 错误修复:

    • #1455 TS.ADD- 不复制可选参数 (MOD-5110)

v1.8.9(2023 年 3 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:MODERATE:对服务器进行升级编程,但这不是紧急的。

详:

  • 错误修复:

    • #1421从具有AVG压缩 (MOD-4972)
    • #1422从具有压缩且无过期时间的时间序列中删除时错误地返回错误

v1.8.8(2023 年 3 月)

这是 RedisTimeSeries 1.8 的维护版本

更新紧急度:MODERATE:对服务器进行升级编程,但这不是紧急的。

详:

  • 错误修复:

    • #1290使用时可能崩溃FILTER_BY_TS
    • 排名 #1397尝试创建已存在的密钥时出现内存泄漏(MOD-4724、RED-93418)

v1.8.5(2023 年 1 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:HIGH:存在可能影响一部分用户的严重错误。升级!

详:

  • 错误修复:

    • #1388从 v1.6 升级到 1.8 时,如果存在minmax聚合 (MOD-4695)

v1.8.4(2022 年 12 月)

这是 RedisTimeSeries 1.8 的维护版本。

更新紧急度:HIGH:存在可能影响一部分用户的严重错误。升级!

详:

v1.8 GA (v1.8.3)(2022 年 11 月)

这是 RedisTimeSeries 1.8 的正式发布版本。

突出

RedisTimeSeries 1.8 引入了 7 个备受期待的功能、性能改进和错误修复。

1.8 中的新增功能

  • (可选)检索用于压缩的最新 (仍处于打开状态) 存储桶的聚合结果

    在版本 1.8 之前,当时间序列是压缩时,TS.格特TS。MGET,TS。范围TS。雷夫兰奇TS。MRANGE, TS.MREVRANGE 未报告最新存储桶的压缩值。原因是 compaction 的最新存储桶中的数据仍然是部分的。存储桶仅在到达“打开”新最新“存储桶的数据时被”关闭“和压缩。

    但是,在某些使用案例中,还应检索最新存储桶的压缩。例如,用户可能希望接收自十年开始以来的事件计数,而原始数据的保留期仅为一个月。在版本 1.8 之前,用户必须运行两个查询 - 一个针对压缩,另一个针对最新的原始数据,然后对结果求和。从 1.8 版本开始,通过指定LATEST,也可以检索最新的(可能是部分的)存储桶。

    要报告最新存储桶的聚合,请使用新的可选LATESTflag 分配给 TS。格特TS。MGET,TS。范围TS。雷夫兰奇TS。MRANGETS.REVRANGE

  • (可选)检索空存储桶的聚合结果

    命令 TS.范围TS。雷夫兰奇TS。MRANGETS.MREVRANGE 有一个可选的[AGGREGATION aggregator bucketDuration]参数。指定此参数后,将按存储桶聚合原始报表。

    在版本 1.8 之前,不会报告空存储桶的结果。跟EMPTY,现在也可以报告空存储桶的聚合。

    想要检索空存储桶的值的两个主要原因:

    • 更容易对齐多个时间序列上类似查询的结果

    • 使用一些外部工具(例如,图表工具)更容易使用检索到的结果

    对于sumcount聚合器,则为空存储桶报告值 0。

    对于min,max,range,avg,first,std.pstd.s聚合器,则报告值 NaN(不是数字)。

    对于last聚合器,新的twa聚合器、EMPTYflag 用于填充间隙(见下文)。

    要报告空存储桶的聚合,请使用新的可选EMPTY标志。范围TS。雷夫兰奇TS。MRANGETS.MREVRANGE的。

    无论fromTimestamptoTimestamp,则不会报告时间序列中最早样本之前结束或晚于最新样本的空桶的数据。

  • 新的聚合器:时间加权平均值

    当时间序列包含连续信号的离散样本(例如温度)时,使用avg估计给定时间范围内的平均值只有在以恒定间隔对信号进行采样时才能产生良好的估计。但是,如果样本以非常恒定的间隔可用(例如,当某些样本缺失时),则twa聚合器通过随时间对样本进行平均,而不是简单地对样本进行平均,从而产生更准确的估计值。

    显示平均值和时间加权平均值之间差异的图表。

    这是一个极端的例子:上图中的信号有 4 个样本的 “高” 值和 13 个样本的 “低” 值。但是,每个州的时期都大致相同。很容易看出,所有 17 个样本的简单平均值 (avg) 并不代表信号随时间变化的平均值。

    时间加权平均值 (twa) 会增加每个样本的权重。权重与样本表示的时间间隔成正比。在图中,整个周期的时间加权平均值为每个样本分配了适当的权重,因此结果更准确地代表了信号在整个周期内的平均值。

  • 间隙填充:可选择为空桶插值或重复最后一个值

    使用EMPTYlasttwa聚合。

    EMPTY使用twaAggregator 允许我们估计连续信号的平均值,即使对于未收集样本的桶(间隙填充)。

    说明间隙填充的图表。

    考虑我们想要使用 TS。RANGE 计算每个存储桶的平均值(上图中的 p1、p2、p3)。使用 avg,为存储桶 p2 报告的值将为 NaN,因为此存储桶不包含样本。如果我们使用EMPTYtwa,另一方面,存储桶 p2 的平均值将根据 p2 左侧值和 p2 右侧值的线性插值计算。

    在对连续信号进行采样时,我们可以使用这种“间隙填充”功能来计算等宽桶上信号的平均值,而无需担心桶对齐或样品缺失。

    EMPTYwith the last 聚合器允许通过重复上一个样本的值来填充空桶。例如,当时间序列中的值表示股票价格并且价格在存储桶的时间范围内未更改时,这非常有用。

  • 能够控制存储桶时间戳的报告方式

    直到 1.8 版,TS.范围TS。雷夫兰奇TS。MRANGETS.MREVRANGE 返回每个报告存储桶的开始时间作为其时间戳。

    现在可以更改此行为并报告每个存储桶的开始时间、结束时间或中间时间。这在许多用例中是必需的。例如,在交易应用程序中绘制柱线时,用它所代表的桶的结束时间戳注释每个柱线是很常见的。

    存储桶时间戳的报告方式可以使用新的可选BUCKETTIMESTAMPTS 的参数。范围TS。雷夫兰奇TS。MRANGETS.MREVRANGE的。

    -low:存储桶的开始时间(默认)

    +high:存储桶的结束时间

    ~mid:存储桶的中间时间(如果不是整数,则向下舍入)

  • 能够控制压缩规则的对齐方式

    在版本 1.8 之前,压缩规则无法对齐。可以指定具有 24 小时存储桶的压缩规则,因此,每个存储桶将聚合从午夜到下一个午夜的事件。第一个存储桶始终从 epoch 开始,所有其他存储桶都相应地对齐。

    但是,如果我们想汇总从第二天 06:00 到 06:00 的每日事件,该怎么办?现在,我们可以为压缩规则指定对齐方式。

    可以使用新的可选alignTimestampTS 的参数。CREATERULECOMPACTION_POLICY 配置参数。指定alignTimestamp确保有一个 Bucket 正好从alignTimestamp和所有其他存储桶都相应地对齐。alignTimestamp以毫秒为单位。默认值为 0 (与 epoch 对齐)。

  • 新的 reducer

    在 1.8 版本之前,只有sum,minmax可以用作 reducer 类型。

    例如,现在可以计算每个传感器在每个时间范围内的最大温度,然后报告传感器组的平均温度(平均减速器)(按给定标签的值分组)。

    这可以通过新的 reducer 类型 (TS.MRANGETS.MREVRANGE:avg,range,count,std.p,std.s,var.pvar.s.

注意:
新的 RDB 版本 (v7)。使用 v1.8.3 创建的 RDB 文件不向后兼容。
为本页评分
返回顶部 ↑