RedisTimeSeries

Time Series data structure for redis

Github星跟踪图

Release
CircleCI
Docker Cloud Build Status
Language grade: C/C++
codecov

RedisTimeSeries

Mailing List
Gitter

RedisTimeSeries is a Redis Module adding a Time Series data structure to Redis.

Features

Read more about the v1.0 GA features here.

  • High volume inserts, low latency reads
  • Query by start time and end-time
  • Aggregated queries (Min, Max, Avg, Sum, Range, Count, First, Last, STD.P, STD.S, Var.P, Var.S) for any time bucket
  • Configurable maximum retention period
  • Downsampling/Compaction - automatically updated aggregated timeseries
  • Secondary index - each time series has labels (field value pairs) which will allows to query by labels

Using with other tools metrics tools

In the RedisTimeSeries organization you can
find projects that help you integrate RedisTimeSeries with other tools, including:

  1. Prometheus - read/write adapter to use RedisTimeSeries as backend db.
  2. Grafana - using a SimpleJson datasource.
  3. Telegraph
  4. StatsD, Graphite exports using graphite protocol.

Memory model

A time series is a linked list of memory chunks.
Each chunk has a predefined size of samples.
Each sample is a tuple of the time and the value of 128 bits,
64 bits for the timestamp and 64 bits for the value.

Setup

You can either get RedisTimeSeries setup in a Docker container or on your own machine.

Docker

To quickly try out RedisTimeSeries, launch an instance using docker:

docker run -p 6379:6379 -it --rm redislabs/redistimeseries

Build and Run it yourself

You can also build and run RedisTimeSeries on your own machine.

Major Linux distributions as well as macOS are supported.

Requirements

First, clone the RedisTimeSeries repository from git:

git clone --recursive https://github.com/RedisTimeSeries/RedisTimeSeries.git

Then, to install required build artifacts, invoke the following:

cd RedisTimeSeries
make setup

Or you can install required dependencies manually listed in system-setup.py.

If make is not yet available, the following commands are equivalent:

./deps/readies/bin/getpy2
./system-setup.py

Note that system-setup.py will install various packages on your system using the native package manager and pip. This requires root permissions (i.e. sudo) on Linux.

If you prefer to avoid that, you can:

  • Review system-setup.py and install packages manually,
  • Utilize a Python virtual environment,
  • Use Docker with the --volume option to create an isolated build environment.

Build

make build

Binary artifacts are placed under the bin directory.

Run

In your redis-server run: loadmodule bin/redistimeseries.so

For more information about modules, go to the redis official documentation.

Give it a try

After you setup RedisTimeSeries, you can interact with it using redis-cli.

Here we'll create a time series representing sensor temperature measurements.
After you create the time series, you can send temperature measurements.
Then you can query the data for a time range on some aggregation rule.

With redis-cli

$ redis-cli
127.0.0.1:6379> TS.CREATE temperature:3:11 RETENTION 60 LABELS sensor_id 2 area_id 32
OK
127.0.0.1:6379> TS.ADD temperature:3:11 1548149181 30
OK
127.0.0.1:6379> TS.ADD temperature:3:11 1548149191 42
OK
127.0.0.1:6379>  TS.RANGE temperature:3:11 1548149180 1548149210 AGGREGATION avg 5
1) 1) (integer) 1548149180
   2) "30"
2) 1) (integer) 1548149190
   2) "42"

Client libraries

Some languages have client libraries that provide support for RedisTimeSeries commands:, Project, Language, License, Author, URL, -------, --------, -------, ------, ---, JRedisTimeSeries, Java, BSD-3, RedisLabs, Github, redistimeseries-go, Go, Apache-2, RedisLabs, Github, redistimeseries-py, Python, BSD-3, RedisLabs, Github, phpRedisTimeSeries, PHP, MIT, Alessandro Balasco, Github, redis-time-series, JavaScript, MIT, Rafa Campoy, Github, redistimeseries-js, JavaScript, MIT, Milos Nikolovski, Github, ## Tests
Tests are written in python using the rmtest library.

$ cd src
$ pip install -r tests/requirements.txt # optional, use virtualenv
$ make tests

Documentation

Read the docs at http://redistimeseries.io

Mailing List / Forum

Got questions? Feel free to ask at the RedisTimeSeries mailing list.

License

Redis Source Available License Agreement, see LICENSE

主要指标

概览
名称与所有者RedisTimeSeries/RedisTimeSeries
主编程语言C
编程语言Makefile (语言数: 7)
平台
许可证Other
所有者活动
创建于2018-01-08 09:55:32
推送于2025-04-23 15:30:47
最后一次提交2025-04-21 17:04:32
发布数103
最新版本名称v7.99.90 (发布于 )
第一版名称v0.1.0-alpha1 (发布于 )
用户参与
星数1k
关注者数26
派生数147
提交数1.6k
已启用问题?
问题数427
打开的问题数113
拉请求数1029
打开的拉请求数53
关闭的拉请求数232
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?