Redis, the in-memory database and cache server, has announced RedisRaft, a module that turns a collection of Redis servers into a fault-tolerant cluster with strong data consistency between nodes.
Until now Redis hasn’t had a native clustering option that also includes strong consistency, in the vein of projects like Etcd. RedisRaft, as the name implies, uses the Raft consensus algorithm to coordinate consistency among Redis nodes. Further, RedisRaft is a native Redis plug-in, not a fork or an external project.
RedisRaft replaces Redis’s own cluster communications components, so all network traffic between clusters gets routed through it transparently. Once RedisRaft is up and running in a cluster, all reads and writes are made atomic.
Note that RedisRaft may require a slight rewrite of your application’s Redis connection logic, depending on how much latency your app can tolerate. To perform an insert, applications must connect to the node in the cluster that is the currently declared leader. This can be done by rewriting the application’s Redis connection code to find and connect to the leader, or by enabling a RedisRaft feature to automatically forward requests to the leader. Approach #1 is faster, but requires a change to your application. Approach #2 introduces some network latency, but works with your app as-is.
Redis’s module API, first offered in Redis 4, provides an open, standard, and straightforward way to extend the functionality and use cases of Redis. Existing Redis modules range from simply implementing new data types (e.g., fixed floating-point numbers) to adding rich functionality like full SQL capabilities or deep learning.
No public beta of RedisRaft is available yet. Redis Labs plans to offer a preview version in the next few months, and to make the module generally available with the release of Redis 7.0.