High-performance Redis-Server framework, based on rawepoll model.
- high performance
- Compatible with redis protocol
- Create a Redis compatible server with RawEpoll model in Go
go get -u github.com/IceFireDB/redhub
Here's a full example of a Redis clone that accepts:
- SET key value
- GET key
- DEL key
- PING
- QUIT
You can run this example from a terminal:
go run example/server.go
Machine information
OS : CentOS Linux release 7.9.2009 (Core)
CPU : 4 CPU cores
Memory : 32.0 GiB
Go Version : go1.16.5 linux/amd64
$ ./redis-server --port 6379 --appendonly no
$ redis-benchmark -p 6379 -t set,get -n 10000000 -q -P 1024 -c 512
SET: 1864975.75 requests per second
GET: 2443792.75 requests per second
$ ./redis-server --port 6379 --appendonly no
$ redis-benchmark -p 6379 -t set,get -n 10000000 -q -P 1024 -c 512
SET: 1690617.12 requests per second
GET: 2201188.50 requests per second
$ go run example/server.go
$ redis-benchmark -p 6380 -t set,get -n 10000000 -q -P 1024 -c 512
SET: 3033060.50 requests per second
GET: 6169031.50 requests per second
Redhub source code is available under the Apache 2.0 License.
When you use this software, you have agreed and stated that the author, maintainer and contributor of this software are not responsible for any risks, costs or problems you encounter. If you find a software defect or BUG, please submit a patch to help improve it!