
Codis
A proxy that spreads Redis data across many servers and lets you add or remove them while running.
- Stars
- 13.2k
- Forks
- 2.7k
- Licence
- MIT
- Language
- Go
- Last update
- 2.6 years ago
- Type
- Dev tool
No commits in over a year — check for forks or alternatives before adopting.
What it is
Codis sits between your applications and several Redis servers and presents them as one cluster. It splits keys across servers in slots, so data can grow beyond a single machine. Its stated advantage is that data can be moved between servers while the cluster keeps running, and that any Redis client can connect to it.
- Spread a large Redis dataset across several Redis servers behind one address
- Move hash slots between Redis groups while the service stays up
- Use pipelining across a multi-server Redis setup
- Manage proxies and server groups through the included dashboard
Great for
- Teams running Redis that have outgrown a single server
- Operators who need to add or remove Redis servers without restarting the cluster
- Applications with existing Redis clients that cannot use the Redis Cluster protocol
- Users who want a web dashboard for managing their Redis setup
Not ideal for
- Small projects with one Redis server, since the proxy adds moving parts without a clear benefit
- Teams that need a current, actively maintained release, because the README and latest release point to 2017-era versions and the last push was in April 2024
- Users who need the Redis Cluster protocol directly, because Codis is a separate proxy layer
How to get it
- 1
Clone and build from source
You'll need: Go toolchain (version not stated in the README excerpt) · Redis server · zk or etcd for proxy registration (optional, per the README's High Availability section)
Clone the repository
git clone https://github.com/CodisLabs/codis.git - 2
Run it
- Read the English tutorial linked from the README (doc/tutorial_en.md, marked WIP)
- Start Redis servers and the Codis components as described in the tutorial
- Open the dashboard to check proxies, slots, and server groups
- Connect a Redis client to the Codis proxy address
- 3
Get the most out of it
- Use the dashboard to watch slots and server groups during scaling
- Enable proxy registration on zk or etcd so clients can skip dead proxies (per the High Availability section)
- Use hash tags when you need multi-key operations across slots
- Review doc/benchmark.md before tuning for your workload
Downloads
Strengths
- The README states it is production-ready and used at wandoujia.com and other companies
- Allows resharding without restarting the cluster, per the README comparison table
- Works with any Redis client, according to the README
Trade-offs
- The latest release listed is 3.2.2, and the README is partly dated, so check whether it fits your current Redis version
- Some documentation links are marked WIP or are only in Chinese, which may limit access for English readers
- Operating it requires an external coordination service (zk/etcd) for proxy registration in the high availability setup
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| codis (this) | 13.2k | Dev tool | advanced | 2.6 years ago | Teams running Redis that have outgrown a single server |
| node-redis | 17.6k | Library | intermediate | 4 days ago | Node.js developers who need to read and write Redis data from an application |
| AnotherRedisDesktopManager | 34.8k | App | beginner | 3 months ago | Developers who prefer a visual interface over redis-cli for inspecting keys |
| ioredis | 15.4k | Library | beginner | 4 days ago | Node.js backend developers who already run Redis and want a full-featured client |
| asynq | 13.8k | Library | intermediate | 17 days ago | Go developers who need background jobs such as sending emails or resizing images |
| redis-py | 13.7k | Library | beginner | 4 days ago | Python developers who need to read and write data in a Redis server |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.