{"id":15020385,"url":"https://github.com/codislabs/codis","last_synced_at":"2025-12-17T01:15:19.251Z","repository":{"id":22465742,"uuid":"25804514","full_name":"CodisLabs/codis","owner":"CodisLabs","description":"Proxy based Redis cluster solution supporting pipeline and scaling dynamically","archived":false,"fork":false,"pushed_at":"2024-04-15T03:46:45.000Z","size":23010,"stargazers_count":13200,"open_issues_count":302,"forks_count":2688,"subscribers_count":887,"default_branch":"master","last_synced_at":"2025-05-13T00:18:08.101Z","etag":null,"topics":["go","golang","nosql","redis","redis-cluster"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Kitsune-tools/ProjectANA","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodisLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-10-27T05:26:11.000Z","updated_at":"2025-05-12T01:00:33.000Z","dependencies_parsed_at":"2024-06-18T12:28:09.582Z","dependency_job_id":"53e8c0a2-dc1c-481f-9005-6109d8dbeccb","html_url":"https://github.com/CodisLabs/codis","commit_stats":{"total_commits":1605,"total_committers":45,"mean_commits":"35.666666666666664","dds":0.3214953271028037,"last_synced_commit":"de1ad026e329561c22e2a3035fbfe89dc7fef764"},"previous_names":["wandoulabs/codis"],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodisLabs%2Fcodis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodisLabs%2Fcodis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodisLabs%2Fcodis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodisLabs%2Fcodis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodisLabs","download_url":"https://codeload.github.com/CodisLabs/codis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253843232,"owners_count":21972875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","nosql","redis","redis-cluster"],"created_at":"2024-09-24T19:54:59.805Z","updated_at":"2025-12-17T01:15:19.178Z","avatar_url":"https://github.com/CodisLabs.png","language":"Go","readme":"\u003cimg src=\"doc/pictures/logo-3.png\" height=80\u003e\u003c/img\u003e\n\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/CodisLabs/codis?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://travis-ci.org/CodisLabs/codis.svg)](https://travis-ci.org/CodisLabs/codis)\n\nCodis 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.\n\n## Donation\nDonate if you want to help us maintaining this project. Thank you!\n[See this issue for details](https://github.com/CodisLabs/codis/issues/976)\n\n## Compared with Twemproxy and Redis Cluster\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003e\u003c/th\u003e\u003cth\u003eCodis\u003c/th\u003e\u003cth\u003eTwemproxy\u003c/th\u003e\u003cth\u003eRedis Cluster\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eresharding without restarting cluster\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003ctd\u003eNo\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003epipeline\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003ctd\u003eNo\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ehash tags for multi-key operations\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003emulti-key operations while resharding\u003c/td\u003e\u003ctd\u003eYes\u003c/td\u003e\u003ctd\u003e-\u003c/td\u003e\u003ctd\u003eNo(\u003ca href=\"http://redis.io/topics/cluster-spec#multiple-keys-operations\"\u003edetails\u003c/a\u003e)\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eRedis clients supporting\u003c/td\u003e\u003ctd\u003eAny clients\u003c/td\u003e\u003ctd\u003eAny clients\u003c/td\u003e\u003ctd\u003eClients have to support cluster protocol\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\"Resharding\" means migrating the data in one slot from one redis server to another, usually happens while increasing/decreasing the number of redis servers.\n\n## Other Features\n* GUI website dashboard \u0026 admin tools\n* Supports most of Redis commands, Fully compatible with Twemproxy(https://github.com/twitter/twemproxy)\n* Proxies can register on zk/etcd, clients can avoid dead proxies, see \"High Availability\" section.\n\n## Tutorial\n\n[简体中文](doc/tutorial_zh.md)\n[English (WIP) ](doc/tutorial_en.md)\n\n## FAQ\n\n[简体中文](doc/FAQ_zh.md)\n[English (WIP) ](FAQ_en.md)\n\n## High Availability\n\n[简体中文](doc/tutorial_zh.md#3-jodis-与-ha)\n[English (WIP) ](doc/tutorial_en.md#ha)\n\n## Architecture\n\n![architecture](doc/pictures/architecture.png)\n\n## Snapshots\n\nProxy\n![proxy](doc/pictures/snapshots1.png)\n\nSlots\n![slots](doc/pictures/snapshots2.png)\n\nGroup\n![group](doc/pictures/snapshots3.png)\n\nSentinel\n![sentinel](doc/pictures/snapshots4.png)\n\n## Benchmarks\n[See benchmark results](doc/benchmark.md)\n\n## Authors\n\nActive authors:\n* [@spinlock9](https://github.com/spinlock) [微博@斯宾洛克](http://weibo.com/spinlock9)\n* [@yangzhe1991](https://github.com/yangzhe1991) [微博@\\_杨肉\\_](http://weibo.com/yangzhe1991)\n\nEmeritus authors:\n* [@goroutine](https://github.com/ngaut) [微博@goroutine](http://weibo.com/u/1923497393)\n* [@c4pt0r](https://github.com/c4pt0r) [微博@Dongxu\\_Huang](http://weibo.com/c4pt0r)\n\nThanks:\n* [@ivanzhaowy](https://github.com/ivanzhaowy)\n* [@Apache9](https://github.com/apache9) [微博@Apache9](http://weibo.com/u/1876829375)\n\n## License\n\nCodis is licensed under MIT， see MIT-LICENSE.txt\n\n-------------\n*You are welcome to use Codis in your product, and feel free to let us know~ :)*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodislabs%2Fcodis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodislabs%2Fcodis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodislabs%2Fcodis/lists"}