A linearizability distributed database by raft and wisckey, which supports redis client. The badger is default raft log store, you can use AlfheimDB-WAL instead of it.
This project build by mage, you will need install it at first:
go get github.com/magefile/mage
Execute "mage build" in project dir:
mage build
The single node test:
mage initDataDir
mage test single
You can also startup a test cluster, the magefile include a cluster test case:
mage initDataDir
mage test id1
mage test id2
mage test id3
- Go 1.16
- mage
- raft
- AlfheimDB-WAL
- badger
- redcon
String
- Set
- Get
- Incr
- Del
- SetNx
- SetEx
- Expire
- TTL
- Keys
Set/Incr and Get:
./redis-benchmark -p 6379 -t set,get -n 1000000 -q -c 512
SET: 114850.12 requests per second, p50=2.727 msec
GET: 161524.80 requests per second, p50=1.447 msec
Set/Incr and Get:
./redis-benchmark -p 6379 -t set,get -n 500000 -q -c 512
SET: 66952.33 requests per second, p50=6.279 msec
GET: 161917.09 requests per second, p50=1.447 msec
./redis-benchmark -p 6379 -t set,get -n 500000 -q -c 512
SET: 40038.44 requests per second, p50=10.431 msec
GET: 100684.66 requests per second, p50=2.423 msec
Set/Incr and Get:
./redis-benchmark -p 6379 -t set,get -n 500000 -q -c 1024
SET: 23836.77 requests per second, p50=39.391 msec
GET: 92114.96 requests per second, p50=5.375 msec
Raft: "Raft: In Search of an Understandable Consensus Algorithm"
Wisckey: "WiscKey: Separating Keys from Values in SSD-conscious Storage"(FAST2016)
- WASM script
- mage build
- High performance WAL log
- Set support
- Map support
- ZSet support