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"