All Projects → RedisTimeSeries → Redistimeseries

RedisTimeSeries / Redistimeseries

Licence: other
Time Series data structure for Redis

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Redistimeseries

Redis Timeseries
Future development of redis-timeseries is at github.com/RedisLabsModules/redis-timeseries.
Stars: ✭ 197 (-62.69%)
Mutual labels:  redis, timeseries
Stackexchange.redis
General purpose redis client
Stars: ✭ 4,986 (+844.32%)
Mutual labels:  redis
Jobs
A persistent and flexible background jobs library for go.
Stars: ✭ 479 (-9.28%)
Mutual labels:  redis
Aiocache
Asyncio cache manager for redis, memcached and memory
Stars: ✭ 496 (-6.06%)
Mutual labels:  redis
Phpiredis
PHP extension for Redis based on Hiredis
Stars: ✭ 480 (-9.09%)
Mutual labels:  redis
Shirojwt
API SpringBoot + Shiro + Java-Jwt + Redis(Jedis)
Stars: ✭ 503 (-4.73%)
Mutual labels:  redis
Pdf
编程电子书,电子书,编程书籍,包括C,C#,Docker,Elasticsearch,Git,Hadoop,HeadFirst,Java,Javascript,jvm,Kafka,Linux,Maven,MongoDB,MyBatis,MySQL,Netty,Nginx,Python,RabbitMQ,Redis,Scala,Solr,Spark,Spring,SpringBoot,SpringCloud,TCPIP,Tomcat,Zookeeper,人工智能,大数据类,并发编程,数据库类,数据挖掘,新面试题,架构设计,算法系列,计算机类,设计模式,软件测试,重构优化,等更多分类
Stars: ✭ 12,009 (+2174.43%)
Mutual labels:  redis
Feedhq
FeedHQ is a web-based feed reader
Stars: ✭ 525 (-0.57%)
Mutual labels:  redis
Seckill
一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API
Stars: ✭ 513 (-2.84%)
Mutual labels:  redis
Stream Framework
Stream Framework is a Python library, which allows you to build news feed, activity streams and notification systems using Cassandra and/or Redis. The authors of Stream-Framework also provide a cloud service for feed technology:
Stars: ✭ 4,576 (+766.67%)
Mutual labels:  redis
Taoshop
开源电子商务项目,SpringBoot+Dubbo技术栈实现微服务,实现一款分布式集群的电商系统. 项目releases链接:https://github.com/u014427391/taoshop/releases (开发中...)
Stars: ✭ 491 (-7.01%)
Mutual labels:  redis
Php Delayqueue
基于redis实现高可用,易拓展,接入方便,生产环境稳定运行的延迟队列
Stars: ✭ 482 (-8.71%)
Mutual labels:  redis
Readthis
📰 Pooled active support compliant caching with redis
Stars: ✭ 509 (-3.6%)
Mutual labels:  redis
Memtier benchmark
NoSQL Redis and Memcache traffic generation and benchmarking tool.
Stars: ✭ 480 (-9.09%)
Mutual labels:  redis
Flower
Real-time monitor and web admin for Celery distributed task queue
Stars: ✭ 5,036 (+853.79%)
Mutual labels:  redis
Django Redis Sessions
Session backend for Django that stores sessions in a Redis database
Stars: ✭ 478 (-9.47%)
Mutual labels:  redis
Miaou
A chat server with OAuth2 authentication, persistent and searchable history, video and audio, markdown formatting, private and public rooms, stars, votes, embedded games, and many other features
Stars: ✭ 486 (-7.95%)
Mutual labels:  redis
Dtaidistance
Time series distances: Dynamic Time Warping (DTW)
Stars: ✭ 499 (-5.49%)
Mutual labels:  timeseries
Blog
Jiajun的编程随想
Stars: ✭ 528 (+0%)
Mutual labels:  redis
Haipproxy
💖 High available distributed ip proxy pool, powerd by Scrapy and Redis
Stars: ✭ 4,993 (+845.64%)
Mutual labels:  redis

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

RedisTimeSeries

Forum Discord

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 the Redis Data Source.
  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/getpy3
./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 Stars
JRedisTimeSeries Java BSD-3 RedisLabs JRedisTimeSeries-stars
redis-modules-java Java Apache-2 dengliming redis-modules-java-stars
redistimeseries-go Go Apache-2 RedisLabs redistimeseries-go-stars
redistimeseries-py Python BSD-3 RedisLabs redistimeseries-py-stars
NRedisTimeSeries .NET BSD-3 RedisLabs NRedisTimeSeries-stars
phpRedisTimeSeries PHP MIT Alessandro Balasco phpRedisTimeSeries-stars
redis-time-series JavaScript MIT Rafa Campoy redis-time-series-stars
redistimeseries-js JavaScript MIT Milos Nikolovski redistimeseries-js-stars
redis-modules-sdk Typescript BSD-3-Clause Dani Tseitlin redis-modules-sdk-stars
redis_ts Rust BSD-3 Thomas Profelt redis_ts-stars
redistimeseries Ruby MIT Eaden McKee redistimeseries-stars
redis-time-series Ruby MIT Matt Duszynski redis-time-series-rb-stars

Tests

The module includes a basic set of unit tests and integration tests.

Unit tests

To run all unit tests, follow these steps:

$ make unittests

Integration tests

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

Documentation

Read the docs at http://redistimeseries.io

Mailing List / Forum

Got questions? Feel free to ask at the RedisTimeSeries forum.

License

Redis Source Available License Agreement, see LICENSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].