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.22 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 60.1%Language:Gherkin 31.8%Language:Shell 3.8%Language:Clojure 2.7%Language:Makefile 1.2%Language:Java 0.2%Language:Dockerfile 0.2%