yandex / rdsync

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unit-tests-status Linters-status Func-tests-status

rdsync

Rdsync is a redis high-availability tool. It uses a patched redis version to make a cluster or sentinel-like setup less prone to data loss.

Limitations and requirements

  • Patched redis (patches for redis 7.2 are included in this repo)
  • ZooKeeper as DCS
  • Single redis instance per host
  • In clustered setup each shard must have it's own DCS prefix
  • Client application must use WAITQUORUM command to make data loss less usual (check jepsen test for example).

Try it out

  • You will need a linux vm with gnu make, docker, docker-compose and go >1.21 installed.
  • Use make start_sentinel_env to start an environment with senticache
  • Or make start_cluster_env to start an environment with single shard of clustered setup
  • Run make clean to drop containers and network

About

License:MIT License


Languages

Language:Go 61.3%Language:Gherkin 30.2%Language:Shell 4.0%Language:Clojure 2.9%Language:Makefile 1.2%Language:Java 0.2%Language:Dockerfile 0.2%