*Redis TS.GET 命令
TS.GET 返回时间序列中最新(或指定)时间戳的数据点。
*语法
TS.GET key [LATEST]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 时间序列键名 |
| LATEST | Flag | 否 | 返回最新数据点(考虑聚合规则产生的最新数据) |
*返回值
- Array:
[timestamp, value]数组 - Nil:时间序列不存在或无数据
*时间复杂度
O(1)
*
*示例
*基本用法
> TS.GET temperature:room1
1) (integer) 1625235000000
2) "24.0"
*获取最新数据(含聚合)
> TS.GET temperature:room1 LATEST
1) (integer) 1625235000000
2) "24.0"
*空序列
> TS.GET empty:series
(nil)
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| TSDB: key does not exist | 时间序列不存在 | 检查 key 名或创建序列 |
| WRONGTYPE | key 不是时间序列 | 确认 key 类型 |
*最佳实践
- 获取最新点时无需指定时间戳,O(1) 高效读取
- 配合 LATEST 选项获取聚合后的最新值(如 1 分钟平均值序列)
- 实时监控场景下,TS.GET 是首选查询命令
*FAQ
Q1: TS.GET 和 TS.RANGE 的区别? A: TS.GET 返回最新单个数据点,O(1);TS.RANGE 返回指定范围的数据点列表。
Q2: 返回的 value 是什么类型? A: 返回字符串形式的双精度浮点数。
Q3: LATEST 和默认行为有什么区别? A: 默认返回原始序列最新点;LATEST 考虑聚合规则,返回聚合后的最新数据。