RedisTimeSeries is a Redis Module adding a Time Series data structure to Redis.
Read more about the v1.0 GA features here.
In the RedisTimeSeries organization you can find projects that help you integrate RedisTimeSeries with other tools, including:
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.
You can either get RedisTimeSeries setup in a Docker container or on your own machine.
To quickly try out RedisTimeSeries, launch an instance using docker:
docker run -p 6379:6379 -it --rm redislabs/redistimeseries
You can also build and run RedisTimeSeries on your own machine.
Major Linux distributions as well as macOS are supported.
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.
make is not yet available, the following commands are equivalent:
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:
--volumeoption to create an isolated build environment.
Binary artifacts are placed under the
In your redis-server run:
For more information about modules, go to the redis official documentation.
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.
$ 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"
Some languages have client libraries that provide support for RedisTimeSeries commands:
The module includes a basic set of unit tests and integration tests.
To run all unit tests, follow these steps:
$ make unittests
Integration tests are based on RLTest, and specific setup parameters can be provided to configure tests. By default the tests will be ran for all common commands, and with variation of persistency and replication.
To run all integration tests in a Python virtualenv, follow these steps:
$ mkdir -p .env $ virtualenv .env $ source .env/bin/activate $ pip install -r tests/flow/requirements.txt $ make test
To understand what test options are available simply run:
$ make help
For example, to run the tests strictly desigined for TS.ADD command, follow these steps:
$ make test TEST=test_ts_add.py
Read the docs at http://redistimeseries.io
Got questions? Feel free to ask at the RedisTimeSeries forum.
Redis Source Available License Agreement, see LICENSE