*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 考虑聚合规则,返回聚合后的最新数据。