From 9e38e36ab27efcc72962f56b6067aa30849b5e9e Mon Sep 17 00:00:00 2001 From: Josh Baker Date: Sat, 20 Aug 2016 11:23:34 -0700 Subject: [PATCH] benchmarks --- README.md | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 35da790..99db026 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,12 @@ Features -------- -- Supports pipelining and telnet commands. -- Simple interface. One function `ListenAndServe` and one type `Conn`. +- Create a custom Redis compatible server in Go +- Simple interface. One function `ListenAndServe` and one type `Conn` +- Support for pipelining and telnet commands - Works with Redis clients such as [redigo](https://github.com/garyburd/redigo), [redis-py](https://github.com/andymccurdy/redis-py), [node_redis](https://github.com/NodeRedis/node_redis), and [jedis](https://github.com/xetorthio/jedis) +- [Fast](#benchmarks) + Installing ---------- @@ -121,6 +124,40 @@ func main() { } ``` +Benchmarks +---------- + +**Redis**: Single-threaded, no disk persistence. + +``` +redis-benchmark -p 6379 -t set,get -n 10000000 -q -P 512 -c 512 +SET: 941265.12 requests per second +GET: 1189909.50 requests per second + +``` + +**Redcon**: Single-threaded, no disk persistence. + +`GOMAXPROCS=1 go run examples/clone.go` + +``` +redis-benchmark -p 6380 -t set,get -n 10000000 -q -P 512 -c 512 +SET: 1320655.00 requests per second +GET: 1552354.25 +``` + +**Redcon**: Multi-threaded, no disk persistence. + +`GOMAXPROCS=0 go run examples/clone.go` + +``` +redis-benchmark -p 6380 -t set,get -n 10000000 -q -P 512 -c 512 +SET: 2740477.00 requests per second +GET: 3210272.75 requests per second +``` + +*Running a MacBook Pro 15" 2.8 GHz Intel Core i7 using Go 1.7* + Contact ------- Josh Baker [@tidwall](http://twitter.com/tidwall)