*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 类型 |
*最佳实践
- 用
memoryUsage和totalSamples评估序列大小和增长趋势 - 用
rules查看关联的聚合规则,避免误删源序列 - 用
labels确认标签配置正确 - 定期监控
chunkCount和memoryUsage,及时发现异常增长
*FAQ
Q1: 如何计算平均每个数据点的内存占用?
A: memoryUsage / totalSamples。
Q2: DEBUG 模式会影响性能吗? A: 大数据量时 DEBUG 会返回大量信息,建议在调试时使用,避免生产环境频繁调用。
Q3: 聚合目标序列会显示 sourceKey 吗? A: 会,通过聚合规则创建的序列会显示源序列 key。