Skip to content

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
Step-by-step guide: how to use CodisInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
codis (this)13.2kDev tooladvanced2.6 years agoTeams running Redis that have outgrown a single server
node-redis17.6kLibraryintermediate4 days agoNode.js developers who need to read and write Redis data from an application
AnotherRedisDesktopManager34.8kAppbeginner3 months agoDevelopers who prefer a visual interface over redis-cli for inspecting keys
ioredis15.4kLibrarybeginner4 days agoNode.js backend developers who already run Redis and want a full-featured client
asynq13.8kLibraryintermediate17 days agoGo developers who need background jobs such as sending emails or resizing images
redis-py13.7kLibrarybeginner4 days agoPython 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.