RedisTimeseries 是一个 Redis 模块,它增强了您使用 Redis 管理时序数据的体验。它简化了 Redis 在时序用例中的使用,例如物联网 (IoT) 数据、股票价格和遥测。借助 Redis Time Series,您可以以 Redis 的速度摄取和查询数百万个样本和事件。降采样和聚合等高级工具可确保占用较小的内存空间,而不会影响性能。使用各种查询进行可视化和监控,并内置与 Grafana、Prometheus 和 Telegraf 等流行监控工具的连接器。
请点击 此链接进行注册 并订阅 Redis Cloud
请点击 此链接 了解如何连接到数据库
本节将引导您使用一些基本的 RedisTimeseries 命令。您可以从 Redis 命令行界面 (redis-cli) 运行它们,或者使用 RedisInsight 中提供的 CLI。(请参阅本教程的第 2 部分,了解有关使用 RedisInsight CLI 的更多信息。)使用基本空气质量数据集,我们将向您展示如何
让我们创建一个表示空气质量数据集测量的时序。要与 Redis Time Series 交互,您最常使用 TS.RANGE 命令,但在这里您将使用 TS.CREATE 命令为每个测量创建一个时序。创建后,所有测量都将使用 TS.ADD 发送。
下面的示例命令创建一个时序并使用三个条目填充它
>> TS.CREATE ts:carbon_monoxide
>> TS.CREATE ts:relative_humidity
>> TS.CREATE ts:temperature RETENTION 60 LABELS sensor_id 2 area_id 32
在上面的示例中,ts:carbon_monoxide、ts:relative_humidity 和 ts:temperature 是键名。我们正在创建一个带有两个标签(sensor_id 和 area_id 是字段,值分别为 2 和 32)和一个 60 毫秒保留窗口的时序
让我们开始将样本添加到将使用此命令自动创建的键中
>> TS.ADD ts:carbon_monoxide 1112596200 2.4
>> TS.ADD ts:relative_humidity 1112596200 18.3
>> TS.ADD ts:temperature 1112599800 28.3
>> TS.ADD ts:carbon_monoxide 1112599800 2.1
>> TS.ADD ts:relative_humidity 1112599800 13.5
>> TS.ADD ts:temperature 1112603400 28.5
>> TS.ADD ts:carbon_monoxide 1112603400 2.2
>> TS.ADD ts:relative_humidity 1112603400 13.1
>> TS.ADD ts:temperature 1112607000 28.7
现在您的时序中有样本数据,您就可以提出如下问题:
TS.GET 用于获取最后一个样本。返回的数组将包含最后一个样本的时间戳,后跟最后一个样本值,当时间序列包含数据时
>> TS.GET ts:temperature
1) (integer) 1112607000
2) "28.7"
TS.MGET 用于获取与特定过滤器匹配的最后一个样本
>> TS.MGET FILTER area_id=32
1) 1) "ts:temperature"
2) (empty list or set)
3) 1) (integer) 1112607000
2) "28.7"
>> TS.MGET WITHLABELS FILTER area_id=32
1) 1) "ts:temperature"
2) 1) 1) "sensor_id"
2) "2"
2) 1) "area_id"
2) "32"
3) 1) (integer) 1112607000
2) "28.7"
TS.RANGE 用于在正向方向查询范围,而 TS.REVRANGE 用于在反向方向查询范围。它们让您回答如下问题:
>> TS.RANGE ts:carbon_monoxide 1112596200 1112603400
1) 1) (integer) 1112596200
2) "2.4"
2) 1) (integer) 1112599800
2) "2.1"
3) 1) (integer) 1112603400
2) "2.2"
您可以使用各种聚合类型,例如 avg、sum、min、max、range、count、first、last 等。下面的示例显示了如何使用“avg”聚合类型来回答如下问题:
>> TS.RANGE ts:carbon_monoxide 1112596200 1112603400 AGGREGATION avg 2
1) 1) (integer) 1112596200
2) "2.4"
2) 1) (integer) 1112599800
2) "2.1"
3) 1) (integer) 1112603400
2) "2.2"