RedisTimeSeries TS.RANGE returns 过去的时间戳
RedisTimeSeries TS.RANGE returns timestamps in the past
我有以下 RedisTimeSeries 键:
127.0.0.1:6379> ts.info ts_raw_l:TSLA
1) totalSamples
2) (integer) 771
3) memoryUsage
4) (integer) 8416
5) firstTimestamp
6) (integer) 1546405200000
7) lastTimestamp
8) (integer) 1642741200000
9) retentionTime
10) (integer) 0
11) chunkCount
12) (integer) 2
13) chunkSize
14) (integer) 4096
15) chunkType
16) compressed
17) duplicatePolicy
18) (nil)
19) labels
20) (empty array)
21) sourceKey
22) (nil)
23) rules
24) 1) 1) "ts_agg_y_l:TSLA"
2) (integer) 31556952000
3) MIN
127.0.0.1:6379>
我有一个范围查询,其中 fromTimestamp
和 toTimestamp
代表 5 个工作日的时间段。
127.0.0.1:6379> ts.range ts_raw_l:TSLA 1641790800000 1642222799000
1) 1) (integer) 1641790800000
2) 980
2) 1) (integer) 1641877200000
2) 1038.82
3) 1) (integer) 1641963600000
2) 1072.5901
4) 1) (integer) 1642050000000
2) 1026.5391
5) 1) (integer) 1642136400000
2) 1013.3788
127.0.0.1:6379>
我将 min
聚合过滤器应用到此范围,timeBucket
值为 5 天,align
为 fromTimestamp
:
127.0.0.1:6379> TS.RANGE ts_raw_l:TSLA 1641790800000 1642222799000 ALIGN 1641790800000 AGGREGATION min 432000000
1) 1) (integer) 1641600000000
2) 980
2) 1) (integer) 1642032000000
2) 1013.3788
127.0.0.1:6379>
我希望得到一个结果,980
并且我希望该结果的时间戳在查询中提供的 fromTimestamp
和 toTimestamp
范围内。
为什么我会得到两个结果?而且,为什么 980
返回的时间戳早于 fromTimestamp
?
Redis/module 版本:
127.0.0.1:6379> MODULE LIST
1) 1) "name"
2) "bf"
3) "ver"
4) (integer) 20206
2) 1) "name"
2) "ai"
3) "ver"
4) (integer) 10205
3) 1) "name"
2) "timeseries"
3) "ver"
4) (integer) 10410
4) 1) "name"
2) "rg"
3) "ver"
4) (integer) 10008
5) 1) "name"
2) "graph"
3) "ver"
4) (integer) 20411
6) 1) "name"
2) "ReJSON"
3) "ver"
4) (integer) 20004
7) 1) "name"
2) "search"
3) "ver"
4) (integer) 20205
127.0.0.1:6379>
此功能在 master
和 1.6(或更高版本)版本中受支持。确保使用更新版本的 RedisTimeSeries。
我有以下 RedisTimeSeries 键:
127.0.0.1:6379> ts.info ts_raw_l:TSLA
1) totalSamples
2) (integer) 771
3) memoryUsage
4) (integer) 8416
5) firstTimestamp
6) (integer) 1546405200000
7) lastTimestamp
8) (integer) 1642741200000
9) retentionTime
10) (integer) 0
11) chunkCount
12) (integer) 2
13) chunkSize
14) (integer) 4096
15) chunkType
16) compressed
17) duplicatePolicy
18) (nil)
19) labels
20) (empty array)
21) sourceKey
22) (nil)
23) rules
24) 1) 1) "ts_agg_y_l:TSLA"
2) (integer) 31556952000
3) MIN
127.0.0.1:6379>
我有一个范围查询,其中 fromTimestamp
和 toTimestamp
代表 5 个工作日的时间段。
127.0.0.1:6379> ts.range ts_raw_l:TSLA 1641790800000 1642222799000
1) 1) (integer) 1641790800000
2) 980
2) 1) (integer) 1641877200000
2) 1038.82
3) 1) (integer) 1641963600000
2) 1072.5901
4) 1) (integer) 1642050000000
2) 1026.5391
5) 1) (integer) 1642136400000
2) 1013.3788
127.0.0.1:6379>
我将 min
聚合过滤器应用到此范围,timeBucket
值为 5 天,align
为 fromTimestamp
:
127.0.0.1:6379> TS.RANGE ts_raw_l:TSLA 1641790800000 1642222799000 ALIGN 1641790800000 AGGREGATION min 432000000
1) 1) (integer) 1641600000000
2) 980
2) 1) (integer) 1642032000000
2) 1013.3788
127.0.0.1:6379>
我希望得到一个结果,980
并且我希望该结果的时间戳在查询中提供的 fromTimestamp
和 toTimestamp
范围内。
为什么我会得到两个结果?而且,为什么 980
返回的时间戳早于 fromTimestamp
?
Redis/module 版本:
127.0.0.1:6379> MODULE LIST
1) 1) "name"
2) "bf"
3) "ver"
4) (integer) 20206
2) 1) "name"
2) "ai"
3) "ver"
4) (integer) 10205
3) 1) "name"
2) "timeseries"
3) "ver"
4) (integer) 10410
4) 1) "name"
2) "rg"
3) "ver"
4) (integer) 10008
5) 1) "name"
2) "graph"
3) "ver"
4) (integer) 20411
6) 1) "name"
2) "ReJSON"
3) "ver"
4) (integer) 20004
7) 1) "name"
2) "search"
3) "ver"
4) (integer) 20205
127.0.0.1:6379>
此功能在 master
和 1.6(或更高版本)版本中受支持。确保使用更新版本的 RedisTimeSeries。