TS.MGET
从与特定过滤器匹配的每个时间序列中获取具有最高时间戳的样本
语法
TS.MGET [LATEST] [WITHLABELS | SELECTED LABELS label1 [label1 ...]] FILTER
引入版本:1.0.0
复杂度摘要:O(n)
[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。
从与特定过滤器匹配的每个时间序列中获取具有最高时间戳的样本。从 Redis 8.6 开始,NaN 值包含在结果中。
[!NOTE] 仅当当前用户对与过滤器匹配的所有键具有读取权限时,此命令才会回复。否则,它将回复“(错误):当前用户没有对与指定过滤器匹配的一个或多个键的读取权限”。
必需参数
FILTER filterExpr...
根据标签和标签值过滤时间序列。
可选参数
LATEST(自 RedisTimeSeries v1.8 起)
当时间序列是压缩时使用。使用 LATEST,TS.MGET 还会报告最新(可能是部分)存储桶的压缩值,前提是该存储桶的开始时间落在 [fromTimestamp, toTimestamp] 内。如果没有 LATEST,TS.MGET 不会报告最新(可能是部分)存储桶。当时间序列不是压缩时,LATEST 被忽略。
compaction的最新bucket中的数据可能是部分的。存储桶是 关闭,并且仅在新样本到达时才进行压缩,该新样本将 打开 变为新的 最新的 存储桶。然而,在某些情况下,还需要最新(可能是部分)存储桶的压缩值。在这种情况下,请使用 LATEST。
WITHLABELS
在回复中包括表示时间序列的元数据标签的所有标签-值对。如果未指定 WITHLABELS 或 SELECTED_LABELS,默认情况下,将报告空列表作为标签值对。
SELECTED_LABELS label...(自 RedisTimeSeries v1.6 起)
返回表示时间序列的元数据标签的标签值对的子集。当每个系列存在大量标签,但仅需要某些标签的值时使用。如果未指定 WITHLABELS 或 SELECTED_LABELS,默认情况下,将报告空列表作为标签值对。
MGET command cannot be part of a transaction when running on a Redis cluster.
示例
Select labels to retrieve
创建特拉维夫和耶路撒冷温度的时间序列,然后添加不同的温度样本。
redis> TS.CREATE temp:TLV LABELS type temp location TLV
OK
redis> TS.CREATE temp:JLM LABELS type temp location JLM
OK
redis> 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
redis> 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
获取与最后一个样本相关的所有标签。
redis> 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。
redis> 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
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 支持 |
✅ 灵活且每年一次 ✅ 免费和固定 |
返回值
RESP2
数组回复:对于与指定过滤器匹配的每个时间序列,报告以下内容: - 批量字符串回复:时间序列键名称 - 数组回复:标签值对(批量字符串回复、批量字符串回复) - 默认情况下,报告空数组 - 如果指定 WITHLABELS,则报告与该时间序列关联的所有标签 - 如果指定 SELECTED_LABELS label...,则报告所选标签(未定义此类标签时为空值) - 数组回复:单个时间戳值对(整数回复、简单字符串回复)
RESP3
地图回复:对于与指定过滤器匹配的每个时间序列,将报告以下内容: - 批量字符串回复:时间序列键名称 - 地图回复 或 数组回复:标签值对 - 默认情况下,报告空数组 - 如果指定 WITHLABELS,则与此时间序列关联的所有标签将报告为地图 - 如果指定 SELECTED_LABELS label...,则将所选标签报告为地图(未定义此类标签时为空值) - 数组回复:单个时间戳值对(整数回复、双重回复)
参见
TS.MRANGE | TS.RANGE | TS.MREVRANGE | TS.REVRANGE
相关主题
资料来源:Redis 官方 TS.MGET 文档;中文内容参考 Redis 文档许可。