*Redis TS.QUERYINDEX 命令
TS.QUERYINDEX 根据标签过滤器查询匹配的时间序列键名列表,不返回数据点。
*语法
TS.QUERYINDEX filter...
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filter | String | 是 | 标签过滤条件,如 sensor=temp、room=1 |
*返回值
- Array:匹配的时间序列键名列表
*时间复杂度
O(N),N 为匹配的序列数量。
*示例
*基本查询
> TS.QUERYINDEX sensor=temp
1) "temperature:room1"
2) "temperature:room2"
3) "temperature:room3"
*多条件过滤
> TS.QUERYINDEX sensor=temp room=1
1) "temperature:room1"
*排除条件
> TS.QUERYINDEX sensor=temp room!=1
1) "temperature:room2"
2) "temperature:room3"
*查询所有序列
> TS.QUERYINDEX sensor=temp
...(返回所有带 sensor=temp 标签的序列)
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR no such label | 标签不存在 | 检查标签名是否正确 |
*最佳实践
*FAQ
Q1: TS.QUERYINDEX 和 TS.MGET 的区别? A: TS.QUERYINDEX 只返回键名;TS.MGET 返回键名和最新数据点。
Q2: 支持模糊匹配吗?
A: 不支持,只支持 = 和 != 精确匹配。
Q3: 可以查询没有标签的序列吗? A: 不能,TS.QUERYINDEX 依赖标签索引,无标签的序列无法通过此命令查询。