*Redis TS.QUERYINDEX 命令

TS.QUERYINDEX 根据标签过滤器查询匹配的时间序列键名列表,不返回数据点。


*语法

TS.QUERYINDEX filter...

*参数说明

参数 类型 必填 说明
filter String 标签过滤条件,如 sensor=temproom=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 标签不存在 检查标签名是否正确

*最佳实践

  • 用 TS.QUERYINDEX 发现序列、检查标签配置是否正确
  • 结合 Redis 管道,用查询结果批量执行 TS.RANGE / TS.DEL 等操作
  • 标签命名规范统一,便于查询和过滤

*FAQ

Q1: TS.QUERYINDEX 和 TS.MGET 的区别? A: TS.QUERYINDEX 只返回键名;TS.MGET 返回键名和最新数据点。

Q2: 支持模糊匹配吗? A: 不支持,只支持 =!= 精确匹配。

Q3: 可以查询没有标签的序列吗? A: 不能,TS.QUERYINDEX 依赖标签索引,无标签的序列无法通过此命令查询。