#Codis - yet another fast distributed solution for Redis
Codis is a proxy based high performance Redis cluster solution written in Go/C, an alternative to Twemproxy.
Codis supports multiple stateless proxy with multiple redis instances.
Codis is engineered to elastically scale, Easily add or remove redis or proxy instances on-demand/dynamicly.
Codis is production-ready and is widely used by wandoujia.com.
##Major Changes in 2.0 In Codis 2.0, we redesign the request dispatcher. Now pipeline and mget/mset requests are much faster than ever!
##Features
- Auto rebalance
- Extremely simple to use
- Support both redis or rocksdb transparently
- GUI dashboard & admin tools
- Supports most of Redis commands, Fully compatible with twemproxy(https://github.com/twitter/twemproxy)
- Native Redis clients are supported
- Safe and transparent data migration, Easily add or remove nodes on-demand.
- Command-line interface is also provided
- RESTful APIs
- Install go & ZooKeeper
- go get -d github.com/wandoulabs/codis
- cd $GOPATH/src/github.com/wandoulabs/codis
- ./bootstrap.sh
- make gotest
- cd sample
- follow instructions in usage.md
-
Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
-
MemTotal: 16 GB
-
System:
- Linux: 4.0.5-1-ARCH #1 SMP PREEMPT Sat Jun 6 18:37:49 CEST 2015 x86_64 GNU/Linux
- Go: go version go1.4.2 linux/amd64
-
Redis:
nohup codis-server 6380.conf &
nohup codis-server 6381.conf &
nohup codis-server 6382.conf &
nohup codis-server 6383.conf & -
Twemproxy:
redis-benchmark -p 22120 -c $clients -n 5000000 -P 100 -r 1048576 -d 256 -t get,set,mset -
Codis:
redis-benchmark -p 19000 -c $clients -n 5000000 -P 100 -r 1048576 -d 256 -t get,set,mset -
Result:
Thanks:
Codis is licensed under MIT, see MIT-LICENSE.txt
You are welcome to use Codis in your product, and feel free to let us know~ :)




