https://github.com/codislabs/codis
Proxy based Redis cluster solution supporting pipeline and scaling dynamically
https://github.com/codislabs/codis
go golang nosql redis redis-cluster
Last synced: 6 days ago
JSON representation
Proxy based Redis cluster solution supporting pipeline and scaling dynamically
- Host: GitHub
- URL: https://github.com/codislabs/codis
- Owner: CodisLabs
- License: mit
- Created: 2014-10-27T05:26:11.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-15T03:46:45.000Z (about 1 year ago)
- Last Synced: 2024-10-29T10:48:52.650Z (6 months ago)
- Topics: go, golang, nosql, redis, redis-cluster
- Language: Go
- Homepage:
- Size: 21.9 MB
- Stars: 13,154
- Watchers: 888
- Forks: 2,691
- Open Issues: 302
-
Metadata Files:
- Readme: README.md
- License: MIT-LICENSE.txt
Awesome Lists containing this project
README
[](https://gitter.im/CodisLabs/codis?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://travis-ci.org/CodisLabs/codis)Codis is a proxy based high performance Redis cluster solution written in Go. It is production-ready and widely used at [wandoujia.com](http://wandoujia.com) and many companies. You can see [Codis Releases](https://github.com/CodisLabs/codis/releases) for latest and most stable realeases.
## Donation
Donate if you want to help us maintaining this project. Thank you!
[See this issue for details](https://github.com/CodisLabs/codis/issues/976)## Compared with Twemproxy and Redis Cluster
CodisTwemproxyRedis Cluster
resharding without restarting clusterYesNoYes
pipelineYesYesNo
hash tags for multi-key operationsYesYesYes
multi-key operations while reshardingYes-No(details)
Redis clients supportingAny clientsAny clientsClients have to support cluster protocol"Resharding" means migrating the data in one slot from one redis server to another, usually happens while increasing/decreasing the number of redis servers.
## Other Features
* GUI website dashboard & admin tools
* Supports most of Redis commands, Fully compatible with Twemproxy(https://github.com/twitter/twemproxy)
* Proxies can register on zk/etcd, clients can avoid dead proxies, see "High Availability" section.## Tutorial
[简体中文](doc/tutorial_zh.md)
[English (WIP) ](doc/tutorial_en.md)## FAQ
[简体中文](doc/FAQ_zh.md)
[English (WIP) ](FAQ_en.md)## High Availability
[简体中文](doc/tutorial_zh.md#3-jodis-与-ha)
[English (WIP) ](doc/tutorial_en.md#ha)## Architecture

## Snapshots
Proxy
Slots
Group
Sentinel
## Benchmarks
[See benchmark results](doc/benchmark.md)## Authors
Active authors:
* [@spinlock9](https://github.com/spinlock) [微博@斯宾洛克](http://weibo.com/spinlock9)
* [@yangzhe1991](https://github.com/yangzhe1991) [微博@\_杨肉\_](http://weibo.com/yangzhe1991)Emeritus authors:
* [@goroutine](https://github.com/ngaut) [微博@goroutine](http://weibo.com/u/1923497393)
* [@c4pt0r](https://github.com/c4pt0r) [微博@Dongxu\_Huang](http://weibo.com/c4pt0r)Thanks:
* [@ivanzhaowy](https://github.com/ivanzhaowy)
* [@Apache9](https://github.com/apache9) [微博@Apache9](http://weibo.com/u/1876829375)## License
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~ :)*