首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使RedisTimeSeries返回由压缩规则提供的目标密钥的部分桶

如何使RedisTimeSeries返回由压缩规则提供的目标密钥的部分桶
EN

Stack Overflow用户
提问于 2022-05-02 18:26:08
回答 1查看 143关注 0票数 2

这是this question的一个扩展,它已有近2年的历史。在这个问题中,@Danni说,API的目的是不返回部分桶的结果。

我的问题是,如果我想返回部分桶的结果,该如何返回?

例如,我希望ts.get返回100

代码语言:javascript
复制
127.0.0.1:6379> flushdb 
OK
127.0.0.1:6379> ts.create src
OK
127.0.0.1:6379> ts.create dst
OK
127.0.0.1:6379> ts.createrule src dst aggregation first 3600000
OK
127.0.0.1:6379> ts.add src * 100
(integer) 1651515399055
127.0.0.1:6379> ts.add src * 200
(integer) 1651515402981
127.0.0.1:6379> ts.add src * 300
(integer) 1651515406787
127.0.0.1:6379> ts.add src * 400
(integer) 1651515410118
127.0.0.1:6379> ts.get dst
(empty array)
EN

回答 1

Stack Overflow用户

发布于 2022-05-03 05:15:29

当前,当键是压缩时,TS.GET、TS.RANGE、TS.REVRANGE、TS.MRANGE和TS.MREVRANGE不会报告最新的原始桶的压缩值。

原因是最近的桶中的数据可能是部分的。一个桶是“关闭”的,只有在数据到达时“打开”一个新桶时才会进行压缩。

您肯定是对的--在某些情况下,还应该检索最新的(可能是部分的)桶的压缩。

在RedisTimeSeries 1.8中,我们将引入一个可选标志,允许接收最新(可能是部分)桶:

详细信息:

在上述命令中添加可选的最新命令:

代码语言:javascript
复制
TS.GET key [LATEST]
TS.MGET key [LATEST] ...
TS.RANGE key fromTimeStamp toTimeStamp [LATEST] …
TS.REVRANGE key fromTimeStamp toTimeStamp [LATEST] …
TS.MRANGE key fromTimeStamp toTimeStamp [LATEST] …
TS.MREVRANGE key fromTimeStamp toTimeStamp [LATEST] …

最新

只有当键是压缩时才有效。如果指定-还检索最新(可能是部分)压缩桶。

现在您可以轻松完成的工作(RedisTimeSeries v1.6)是在最近的桶期手动聚合原始样本--直接从原始样本时间序列(而不是从压缩样本时间序列),使用以下方法:

TS.RANGE key bucket_startTimestamp bucket_endTimestamp AGGREGATION aggregator bucketDuration

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72090857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档