A raft based distributed K/V database with redis-compatible API, implemented in async rust.
# Start a 3-node cluster, will listen on port 63790, 63791, 63792 respectively
./run.sh 3
Use redis-cli
to connect to one of the node:
redis-cli -p 63790
127.0.0.1:63790> get foo
(nil)
Use redis-cli
to connect to another node and make a write request:
redis-cli -p 63791
127.0.0.1:63791> get foo
(nil)
127.0.0.1:63791> set foo 123
OK
127.0.0.1:63791> get foo
"123"
Then this update will be visible to all nodes:
127.0.0.1:63790> get foo
"123"
- Automatic failover
- Read/Write splitting
- Write forwarding
- Persistence(WAL)
- Log compaction(snapshot)
- Dynamic membership
Radis is licensed under the MIT license.