Redis: Обработка отказов?

Redis действительно кажется отличным продуктом со встроенной репликацией и потрясающей скоростью. После тестирования он определенно похож на замену memcached 2010 года.

Однако, поскольку, когда обычно используется memcached, последовательное хеширование используется для равномерного распространения данных по серверам в пуле. Если один из серверов в пуле идет вниз и перестает быть доступным, он обрабатывается прозрачно, и только оставшиеся ключи будут воссозданы и равномерно распределены между оставшимися доступными серверами в пуле.

Redis имеет, с другой стороны, также встроенный осколок, но также и другую очень интересную функцию, называемую автоматической репликацией. Благодаря этому доступность данных может быть значительно увеличена при использовании подчиненных серверов для использования в случае удара дерьмом вентилятора.

Тем не менее, я еще не нашел хорошего решения для обработки изменения статуса сервера redis как подчиненного устройства, чтобы автоматически стать новым мастером или любым другим способом, автоматически обрабатывающим переход с Redis.

Как это можно сделать? Каким будет подходящий подход к этому?

Ответы

Ответ 1

Однако, поскольку, когда обычно используется memcached, последовательное хеширование используется для равномерного распространения данных по серверам в пуле. Если один из серверов в пуле идет вниз и перестает быть доступным, он обрабатывается прозрачно, и только оставшиеся ключи будут воссозданы и равномерно распределены между оставшимися доступными серверами в пуле.

Это не то, что делает memcached, клиентская библиотека делает все это волшебство;)

Тем не менее, я пока не нашел хорошего решения для обработки изменения статуса сервера redis как подчиненного устройства, чтобы автоматически стать новым мастером или любым другим способом, автоматически обрабатывающим переход с Redis.

Используйте SlaveofCommand, чтобы изменить характеристики. Автоматическому отказоустойчивости потребуется немного больше кодирования, подключиться к серверу, и если вы потеряете соединение и не сможете установить его снова на время X, тогда выберите одно подчиненное устройство, которое будет основным, и измените статус подчиненного-хозяина всех других серверов.

Update (01. Aug. 2012): Там теперь redis sentinel, мониторинг и автоматическое решение для аварийного переключения для версии 2.4.16 и выше.