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/mageExecute "mage build" in project dir:
mage buildThe single node test:
mage initDataDir mage test singleYou 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 msecRaft: "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