TS.MGET
语法
TS.MGET [LATEST] [WITHLABELS | <SELECTED_LABELS label...>] FILTER filterExpr...
- 可用:
- Redis 堆栈 / TimeSeries 1.0.0
- 时间复杂度:
- O(n),其中 n 是与筛选条件匹配的时间序列的数量
从与特定筛选条件匹配的每个时间序列中获取具有最高时间戳的样本
必需参数
FILTER filterExpr...
根据时间序列的标签和标签值筛选时间序列。每个筛选条件表达式都有以下语法之一:
label!=
- 时间序列具有名为label
label=value
- 时间序列具有名为label
值等于value
label=(value1,value2,...)
- 时间序列具有名为label
其值等于列表中的某个值label=
- 时间序列没有名为label
label!=value
- 时间序列没有名为label
值等于value
label!=(value1,value2,...)
- 时间序列没有名为label
其值等于列表中的任何值
- 至少一个具有语法的筛选条件表达式
label=value
或label=(value1,value2,...)
是必需的。 - 筛选表达式是联合的。例如,过滤器
type=temperature room=study
表示时间序列是自习室的温度时间序列。 - 过滤器表达式中不允许使用空格,但值中的引号或双引号之间除外 - 例如,
x="y y"
或x='(y y,z z)'
.
可选参数
LATEST
(自 RedisTimeSeries v1.8 起)
当时间序列为 compaction 时使用。跟LATEST
、TS.MGET 还会报告最新(可能是部分)存储桶的压缩值,前提是此存储桶的开始时间在[fromTimestamp, toTimestamp]
.没有LATEST
、TS.MGET 不会报告最新的(可能是部分的)存储桶。当时间序列不是压缩时,LATEST
被忽略。
压缩的最新存储桶中的数据可能是部分的。仅当新样品到达并打开最新的新存储桶时,存储桶才会关闭和压缩。但是,在某些情况下,还需要最新(可能是部分)存储桶的压缩值。在这种情况下,请使用LATEST
.
WITHLABELS
在 reply 中包括表示时间序列元数据标签的所有标签-值对。
如果WITHLABELS
或SELECTED_LABELS
,则默认情况下,空列表将报告为标签值对。
SELECTED_LABELS label...
(自 RedisTimeSeries v1.6 起)
返回表示时间序列的元数据标签的标签-值对的子集。
当每个系列存在大量标签,但只需要某些标签的值时使用。
如果WITHLABELS
或SELECTED_LABELS
,则默认情况下,空列表将报告为标签值对。
MGET
命令不能成为事务的一部分。
返回值
- Array reply:对于每个匹配指定筛选条件的时间序列,将报告以下内容:
例子
选择要检索的标签
创建特拉维夫和耶路撒冷的温度时间序列,然后添加不同的温度样本。
127.0.0.1:6379> TS.CREATE temp:TLV LABELS type temp location TLV
OK
127.0.0.1:6379> TS.CREATE temp:JLM LABELS type temp location JLM
OK
127.0.0.1:6379> TS.MADD temp:TLV 1000 30 temp:TLV 1010 35 temp:TLV 1020 9999 temp:TLV 1030 40
1) (integer) 1000
2) (integer) 1010
3) (integer) 1020
4) (integer) 1030
127.0.0.1:6379> TS.MADD temp:JLM 1005 30 temp:JLM 1015 35 temp:JLM 1025 9999 temp:JLM 1035 40
1) (integer) 1005
2) (integer) 1015
3) (integer) 1025
4) (integer) 1035
Get all the labels associated with the last sample.
127.0.0.1:6379> TS.MGET WITHLABELS FILTER type=temp
1) 1) "temp:JLM"
2) 1) 1) "type"
2) "temp"
2) 1) "location"
2) "JLM"
3) 1) (integer) 1035
2) 40
2) 1) "temp:TLV"
2) 1) 1) "type"
2) "temp"
2) 1) "location"
2) "TLV"
3) 1) (integer) 1030
2) 40
To get only the location
label for each last sample, use SELECTED_LABELS
.
127.0.0.1:6379> TS.MGET SELECTED_LABELS location FILTER type=temp
1) 1) "temp:JLM"
2) 1) 1) "location"
2) "JLM"
3) 1) (integer) 1035
2) 40
2) 1) "temp:TLV"
2) 1) 1) "location"
2) "TLV"
3) 1) (integer) 1030
2) 40
See also
TS.MRANGE
| TS.RANGE
| TS.MREVRANGE
| TS.REVRANGE
Related topics