codis README

The project's README from github.com/CodisLabs/codis. As one markdown file: README.md.

Gitter Build Status

Codis is a proxy based high performance Redis cluster solution written in Go. It is production-ready and widely used at wandoujia.com and many companies. You can see 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

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

Tutorial

简体中文 English (WIP)

FAQ

简体中文 English (WIP)

High Availability

简体中文 English (WIP)

Architecture

architecture

Snapshots

Proxy proxy

Slots slots

Group group

Sentinel sentinel

Benchmarks

See benchmark results

Authors

Active authors:

Emeritus authors:

Thanks:

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~ :)

codis (CodisLabs/codis)

redis-cluster
Searching Database…

13.2K ·GitHub
What is this?Codis is a proxy-based, high-performance Redis cluster solution written in Go — it sits between your application and a pool of Redis servers. It is production-ready and widely used at wandoujia.com and many other companies.
So do I run Codis as a separate service in front of my Redis servers?Exactly. Clients connect to the Codis proxy as if it were a regular Redis server, and it routes commands to the backend Redis instances. It supports most Redis commands and is fully compatible with Twemproxy.
How do I get it running?Download a prebuilt binary from the Codis Releases page — the README points there for the most stable releases — or build from source with make; a Dockerfile is included too. Chinese and English tutorials are linked from the README.
Do I need to run anything besides Codis and Redis?Yes, a coordination store: proxies register themselves on ZooKeeper or etcd, which also lets clients discover live proxies and avoid dead ones. Sentinel integration is part of the architecture as well.
Where does this thing actually get deployed?On your own infrastructure: it is a server-side Go program you self-host next to your Redis instances, with a Dockerfile in the repo. The admin dashboard is a web app you open in a browser.
Why choose Codis over Twemproxy or Redis Cluster?Twemproxy cannot reshard without restarting the cluster, while Codis resharding is online — multi-key operations even keep working during it. Redis Cluster requires clients that support the cluster protocol, while Codis works with any standard client and supports pipeline.
What does resharding actually mean?Migrating the data in one slot from one Redis server to another — it usually happens while you increase or decrease the number of Redis servers. Codis does it without restarting the cluster.
Does it come with any admin tooling?Yes — a GUI website dashboard plus admin tools. The README snapshots show screens for proxies, slots, groups and Sentinel.
Can I use Codis in my own product?Yes. It is MIT-licensed, and the authors explicitly welcome using it in your product — they even ask you to tell them about it.
What are similar projects?go-redis, phpredis, garnet, dragonfly, sealos, FerretDB, teleport, ioredis
Creator
CodisLabs
Size
22.5 MB
Stars
13.2K
Age
11y
Commits · 90 Days