codis (CodisLabs/codis)
Searching Database…
Что это такое?
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, и авторы прямо приветствуют использование в ваших продуктах — они даже просят рассказывать им об этом.





