Redis模块RedisTimeSeries 在经过 6 个月的预览版后正式进入GA版。该模块旨在为Redis中的时间序列数据提供分析函数。它具有聚合函数等基本的时间序列工具,并利用了 Redis 现有的存储架构。目前还没有同已有时间序列数据库(TSDB,如OpenTSDB和InfluxDB)的基准测试对比。
作为一个键值存储,Redis 之前已经在其内部使用其它的数据结构来存储时间序列,如排序集、哈希和流等。这些方法有一些限制,比如没有时间序列工具集,而且还不清楚如何实现 TSDB 的一些特性(如标签)。RedisTimeseries 本身源于 Redis 的内部需求,即存储和分析来自 Redis 所管理集群的时间序列的度量。现有的命令行接口与该模块兼容。
作为一个动态库加载,该模块把固定大小的内存块排列成链表。每个块的样本数量都是预定义好的,并且具有和Streams相同的索引实现。它具有基本的时间序列功能,如查询、聚合、保留策略、下采样以及压缩等。但是,这里的压缩似乎与其他时间序列数据库(如OpenTSDB)中的压缩不同。时间序列数据中的标签也为该序列添加了上下文信息。在这里,它们被实现为辅助索引。当使用毫秒级精度存储数据时,需要注意一些问题。
该模块的第一次集成是作为 Prometheus 的远程写适配器,Prometheus 将 RedisTimeSeries 作为其后端数据库。有一个数据源Grafana,并将 Telegraf配置为指标收集器。虽然有报告称,与现有 Redis 存储时间序列的方式相比,该模块具有更好的性能,但是还没有针对其他时间序列数据库的基准对比。
该模块是开源的,具体代码详见Github。Redis 目前还没有将该模块与核心产品合并的计划,未来将会集成更多的可视化工具和数据流供应商。
原文链接:
RedisTimeSeries Module Adds Time Series Database Features to Redis
评论