A key value pair database built using go and RESP protocol.
- Persistence using AOF(Append only file).
- Accept concurrent TCP connections using go routines.
- PING
- GET
- SET
- HGET
- HSET
- HGETALL
- TTL
- PEXPIREAT
Using docker
$ docker-compose up
Using go
compiler
$ go run ./main.go
This will start the application on port 6380
and it can be connected using standard redis-cli
redis client
Following benchmarks are generated using the benchmark.py
script.
Command | Time Taken | Throughput | Total OPs | Concurrent Clients |
---|---|---|---|---|
SET | 13.67 seconds | 7315.33 ops/sec | 100000 | 50 |
GET | 10.24 seconds | 9762.50 ops/sec | 100000 | 50 |
HSET | 12.39 seconds | 8073.67 ops/sec | 100000 | 50 |
HGET | 13.82 seconds | 7234.92 ops/sec | 100000 | 50 |
pip install -r requirements.txt
python benchmark.py