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)

Searching Database…

13.2K ·GitHub
Что это такое?Codis — это высокопроизводительное кластерное решение для Redis на основе прокси, написанное на Go: оно располагается между вашим приложением и пулом серверов Redis. Решение готово к использованию в продакшене и широко применяется в wandoujia.com и многих других компаниях.
То есть я запускаю Codis как отдельный сервис перед своими серверами Redis?Именно так. Клиенты подключаются к прокси Codis, как к обычному серверу Redis, а он маршрутизирует команды на Redis-инстансы на бэкенде. Поддерживается большинство команд Redis, и он полностью совместим с Twemproxy.
Как его запустить?Скачайте готовый бинарник со страницы Codis Releases — README указывает туда для самых стабильных релизов — или соберите из исходников командой make; в репозитории есть и Dockerfile. В README есть ссылки на уроки на китайском и английском.
Нужно ли мне запускать что-то ещё, кроме Codis и Redis?Да, хранилище для координации: прокси регистрируются в ZooKeeper или etcd, что также позволяет клиентам находить работающие прокси и не обращаться к упавшим. Интеграция с Sentinel тоже является частью архитектуры.
А куда это вообще разворачивают?На собственной инфраструктуре: это серверная программа на Go, которую вы хостите сами рядом со своими Redis-инстансами; в репозитории есть Dockerfile. Административный дашборд — это веб-приложение, которое открывается в браузере.
Почему выбрать Codis, а не Twemproxy или Redis Cluster?Twemproxy не умеет перераспределять данные без перезапуска кластера, а в Codis решардинг выполняется на лету — даже многоключевые операции продолжают работать во время этого процесса. Redis Cluster требует клиентов с поддержкой кластерного протокола, тогда как Codis работает с любым стандартным клиентом и поддерживает pipeline.
А что такое решардинг на самом деле?Это перенос данных одного слота с одного сервера Redis на другой — обычно это происходит, когда вы увеличиваете или уменьшаете количество серверов Redis. Codis делает это без перезапуска кластера.
Там есть какие-нибудь инструменты администрирования?Да — веб-дашборд с графическим интерфейсом плюс инструменты для администрирования. На скриншотах в README показаны экраны для прокси, слотов, групп и Sentinel.
Могу ли я использовать Codis в своём продукте?Да. Он распространяется по лицензии MIT, и авторы прямо приветствуют использование в ваших продуктах — они даже просят рассказывать им об этом.
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