TS.MGET
Syntax
TS.MGET [LATEST] [WITHLABELS | <SELECTED_LABELS label...>] FILTER filterExpr...
- Available in:
- Redis Stack / TimeSeries 1.0.0
- Time complexity:
- O(n) where n is the number of time-series that match the filters
从每个匹配特定过滤器的时间序列中获取时间戳最高的样本
必需的参数
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
(since RedisTimeSeries v1.8)
当时间序列是压缩时使用。使用LATEST
时,TS.MGET还会报告最新(可能是部分)桶的压缩值,前提是该桶的开始时间在[fromTimestamp, toTimestamp]
范围内。如果没有LATEST
,TS.MGET不会报告最新(可能是部分)桶。当时间序列不是压缩时,LATEST
会被忽略。
最新压缩桶中的数据可能是部分的。只有在接收到新样本并打开一个新的最新桶时,桶才会被关闭并进行压缩。然而,在某些情况下,也需要最新(可能是部分的)桶的压缩值。在这种情况下,请使用LATEST
。
WITHLABELS
在回复中包含所有表示时间序列元数据标签的标签-值对。
如果未指定WITHLABELS
或SELECTED_LABELS
,默认情况下,将报告一个空列表作为标签-值对。
SELECTED_LABELS label...
(since RedisTimeSeries v1.6)
返回表示时间序列元数据标签的标签-值对的子集。
当每个序列存在大量标签,但只需要某些标签的值时使用。
如果未指定WITHLABELS
或SELECTED_LABELS
,默认情况下,将报告一个空列表作为标签-值对。
MGET
命令不能作为事务的一部分。
返回值
- Array reply: 对于每个匹配指定过滤器的时间序列,报告以下内容:
- bulk-string-reply: 时间序列键名
- Array reply: 标签-值对 (Bulk string reply, Bulk string reply)
- 默认情况下,报告一个空数组
- 如果指定了
WITHLABELS
,则报告与此时间序列关联的所有标签 - 如果指定了
SELECTED_LABELS label...
,则报告选定的标签(未定义此类标签时为null值)
- Array reply: 单个时间戳-值对 (Integer reply, Simple string reply (double))
示例
Select labels to retrieve
为特拉维夫和耶路撒冷的温度创建时间序列,然后添加不同的温度样本。
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
获取与最后一个样本相关的所有标签。
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
要仅获取每个最后一个样本的location
标签,请使用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
另请参阅
TS.MRANGE
| TS.RANGE
| TS.MREVRANGE
| TS.REVRANGE