*Redis TS.INFO 命令

TS.INFO 返回时间序列的详细元数据和统计信息,包括保留期、标签、数据点数量、内存占用等。


*语法

TS.INFO key [DEBUG]

*参数说明

参数 类型 必填 说明
key String 时间序列键名
DEBUG Flag 返回详细的调试信息(每个 chunk 的统计)

*返回值

  • Array:键值对形式的元数据数组
    • totalSamples:数据点总数
    • memoryUsage:内存占用(字节)
    • retentionTime:保留期(毫秒)
    • chunkCount:数据块数量
    • chunkSize:块大小
    • chunkType:编码类型
    • labels:标签列表
    • sourceKey:源序列(如果是聚合目标)
    • rules:聚合规则列表
    • lastTimestamp:最新时间戳
    • firstTimestamp:最早时间戳
    • maxSamplesPerChunk:每块最大样本数
    • duplicatePolicy:重复策略
  • Error:键不存在、键类型不匹配

*时间复杂度

O(1)(DEBUG 模式为 O(N),N 为 chunk 数量)


*示例

*基本信息

> TS.INFO temperature:room1
 1) "totalSamples"
 2) (integer) 1000
 3) "memoryUsage"
 4) (integer) 4096
 5) "retentionTime"
 6) (integer) 86400000
 7) "chunkCount"
 8) (integer) 1
 9) "chunkSize"
10) (integer) 4096
11) "chunkType"
12) "compressed"
13) "labels"
14) 1) 1) "sensor"
       2) "temp"
    2) 1) "room"
       2) "1"
15) "sourceKey"
16) (nil)
17) "rules"
18) 1) 1) "temperature:room1:1min"
       2) (integer) 60000
       3) "AVG"
19) "lastTimestamp"
20) (integer) 1625235000000
21) "firstTimestamp"
22) (integer) 1625148600000
23) "maxSamplesPerChunk"
24) (integer) 256
25) "duplicatePolicy"
26) "last"

*调试模式

> TS.INFO temperature:room1 DEBUG
...(包含每个 chunk 的详细统计)

*常见错误

错误 原因 解决
TSDB: key does not exist 时间序列不存在 检查 key 名
WRONGTYPE key 不是时间序列 确认 key 类型

*最佳实践

  • memoryUsagetotalSamples 评估序列大小和增长趋势
  • rules 查看关联的聚合规则,避免误删源序列
  • labels 确认标签配置正确
  • 定期监控 chunkCountmemoryUsage,及时发现异常增长

*FAQ

Q1: 如何计算平均每个数据点的内存占用? A: memoryUsage / totalSamples

Q2: DEBUG 模式会影响性能吗? A: 大数据量时 DEBUG 会返回大量信息,建议在调试时使用,避免生产环境频繁调用。

Q3: 聚合目标序列会显示 sourceKey 吗? A: 会,通过聚合规则创建的序列会显示源序列 key。