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)
- #1672 (CVE-2024-51480) 漏洞
-
改进:
- #1664添加了对 Ubuntu 22 以及 macOS 13 和 14 的支持
v1.8.13(2024 年 3 月)
这是 RedisTimeSeries 1.8 的维护版本。
更新紧急度:LOW
:除非有您想要使用的新功能,否则无需升级。
详
v1.8.12(2023 年 12 月)
这是 RedisTimeSeries 1.8 的维护版本。
更新紧急度:SECURITY
:此版本中有安全修复程序。
详:
v1.8.11(2023 年 7 月)
这是 RedisTimeSeries 1.8 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
-
错误修复:
-
性能增强:
- #1476使用多个标签筛选条件 (
TS.MGET
,TS.MRANGE
,TS.MREVRANGE
和TS.QUERYINDEX
) (MOD-5338)
- #1476使用多个标签筛选条件 (
v1.8.10(2023 年 4 月)
这是 RedisTimeSeries 1.8 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
-
错误修复:
- #1455
TS.ADD
- 不复制可选参数 (MOD-5110)
- #1455
v1.8.9(2023 年 3 月)
这是 RedisTimeSeries 1.8 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
v1.8.8(2023 年 3 月)
这是 RedisTimeSeries 1.8 的维护版本
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
v1.8.5(2023 年 1 月)
这是 RedisTimeSeries 1.8 的维护版本。
更新紧急度:HIGH
:存在可能影响一部分用户的严重错误。升级!
详:
-
错误修复:
- #1388从 v1.6 升级到 1.8 时,如果存在
min
或max
聚合 (MOD-4695)
- #1388从 v1.6 升级到 1.8 时,如果存在
v1.8.4(2022 年 12 月)
这是 RedisTimeSeries 1.8 的维护版本。
更新紧急度:HIGH
:存在可能影响一部分用户的严重错误。升级!
详:
-
错误修复:
-
改进:
- #1215OSS 集群:支持 TLS 和 IPv6;引入新的配置参数:OSS_GLOBAL_PASSWORD
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
,也可以检索最新的(可能是部分的)存储桶。要报告最新存储桶的聚合,请使用新的可选
LATEST
flag 分配给 TS。格特,TS。MGET,TS。范围,TS。雷夫兰奇,TS。MRANGE 和 TS.REVRANGE 的 -
(可选)检索空存储桶的聚合结果
命令 TS.范围,TS。雷夫兰奇,TS。MRANGE 和 TS.MREVRANGE 有一个可选的
[AGGREGATION aggregator bucketDuration]
参数。指定此参数后,将按存储桶聚合原始报表。在版本 1.8 之前,不会报告空存储桶的结果。跟
EMPTY
,现在也可以报告空存储桶的聚合。想要检索空存储桶的值的两个主要原因:
-
更容易对齐多个时间序列上类似查询的结果
-
使用一些外部工具(例如,图表工具)更容易使用检索到的结果
对于
sum
和count
聚合器,则为空存储桶报告值 0。对于
min
,max
,range
,avg
,first
,std.p
和std.s
聚合器,则报告值 NaN(不是数字)。对于
last
聚合器,新的twa
聚合器、EMPTY
flag 用于填充间隙(见下文)。要报告空存储桶的聚合,请使用新的可选
EMPTY
标志。范围,TS。雷夫兰奇,TS。MRANGE 和 TS.MREVRANGE的。无论
fromTimestamp
和toTimestamp
,则不会报告时间序列中最早样本之前结束或晚于最新样本的空桶的数据。 -
-
新的聚合器:时间加权平均值
当时间序列包含连续信号的离散样本(例如温度)时,使用
avg
估计给定时间范围内的平均值只有在以恒定间隔对信号进行采样时才能产生良好的估计。但是,如果样本以非常恒定的间隔可用(例如,当某些样本缺失时),则twa
聚合器通过随时间对样本进行平均,而不是简单地对样本进行平均,从而产生更准确的估计值。这是一个极端的例子:上图中的信号有 4 个样本的 “高” 值和 13 个样本的 “低” 值。但是,每个州的时期都大致相同。很容易看出,所有 17 个样本的简单平均值 (avg) 并不代表信号随时间变化的平均值。
时间加权平均值 (
twa
) 会增加每个样本的权重。权重与样本表示的时间间隔成正比。在图中,整个周期的时间加权平均值为每个样本分配了适当的权重,因此结果更准确地代表了信号在整个周期内的平均值。 -
间隙填充:可选择为空桶插值或重复最后一个值
使用
EMPTY
与last
或twa
聚合。用
EMPTY
使用twa
Aggregator 允许我们估计连续信号的平均值,即使对于未收集样本的桶(间隙填充)。考虑我们想要使用 TS。RANGE 计算每个存储桶的平均值(上图中的 p1、p2、p3)。使用 avg,为存储桶 p2 报告的值将为 NaN,因为此存储桶不包含样本。如果我们使用
EMPTY
跟twa
,另一方面,存储桶 p2 的平均值将根据 p2 左侧值和 p2 右侧值的线性插值计算。在对连续信号进行采样时,我们可以使用这种“间隙填充”功能来计算等宽桶上信号的平均值,而无需担心桶对齐或样品缺失。
用
EMPTY
with the last 聚合器允许通过重复上一个样本的值来填充空桶。例如,当时间序列中的值表示股票价格并且价格在存储桶的时间范围内未更改时,这非常有用。 -
能够控制存储桶时间戳的报告方式
直到 1.8 版,TS.范围,TS。雷夫兰奇,TS。MRANGE 和 TS.MREVRANGE 返回每个报告存储桶的开始时间作为其时间戳。
现在可以更改此行为并报告每个存储桶的开始时间、结束时间或中间时间。这在许多用例中是必需的。例如,在交易应用程序中绘制柱线时,用它所代表的桶的结束时间戳注释每个柱线是很常见的。
存储桶时间戳的报告方式可以使用新的可选
BUCKETTIMESTAMP
TS 的参数。范围,TS。雷夫兰奇,TS。MRANGE 和 TS.MREVRANGE的。-
或low
:存储桶的开始时间(默认)+
或high
:存储桶的结束时间~
或mid
:存储桶的中间时间(如果不是整数,则向下舍入) -
能够控制压缩规则的对齐方式
在版本 1.8 之前,压缩规则无法对齐。可以指定具有 24 小时存储桶的压缩规则,因此,每个存储桶将聚合从午夜到下一个午夜的事件。第一个存储桶始终从 epoch 开始,所有其他存储桶都相应地对齐。
但是,如果我们想汇总从第二天 06:00 到 06:00 的每日事件,该怎么办?现在,我们可以为压缩规则指定对齐方式。
可以使用新的可选
alignTimestamp
TS 的参数。CREATERULE 和 COMPACTION_POLICY 配置参数。指定alignTimestamp
确保有一个 Bucket 正好从alignTimestamp
和所有其他存储桶都相应地对齐。alignTimestamp
以毫秒为单位。默认值为 0 (与 epoch 对齐)。 -
新的 reducer
在 1.8 版本之前,只有
sum
,min
和max
可以用作 reducer 类型。例如,现在可以计算每个传感器在每个时间范围内的最大温度,然后报告传感器组的平均温度(平均减速器)(按给定标签的值分组)。
这可以通过新的 reducer 类型 (TS.MRANGE 和 TS.MREVRANGE:
avg
,range
,count
,std.p
,std.s
,var.p
和var.s
.