Redis действительно походит на большой продукт с созданным в репликации и удивительной скорости. После проверения его он чувствует определенно как замена 2010 года memcached.
Однако с тех пор при нормальном использовании memcached, последовательное хеширование используется для ровного распространения данных через серверы в пуле. Если один из серверов в пуле понижается и прекращает быть доступным, он обрабатывается прозрачно и только ключи, которые были потеряны, будет воссоздан и равномерно распределен через остающиеся доступные серверы в пуле.
Redis имеет, с другой стороны, также встроенный sharding, но также и другую действительно интересную функцию, названную автоматической репликацией. Благодаря этому доступность данных могла быть значительно увеличена при использовании ведомых серверов для использования в случае дерьма, поражающего вентилятор.
Однако я еще не нашел, что любое хорошее решение обрабатывает изменение состояния сервера советов как ведомое устройство для становления новым ведущим устройством автоматически или любым другим путем, автоматически обрабатывающим обработку отказа с Redis.
Как это могло быть сделано? Каков был бы соответствующий подход к этому?
Однако при обычном использовании memcached для равномерного распределения данных по серверам в пуле используется последовательное хэширование. Если один из серверов в пуле выходит из строя и перестает быть доступным, это обрабатывается прозрачно, и только ключи, которые были потеряны, будут воссозданы и равномерно распределены между оставшимися доступными серверами в пуле.
Это не то, что делает memcached, всю эту магию делает клиентская библиотека ;)
Однако, я пока не нашел хорошего решения, как автоматически менять статус сервера Redis как ведомого на новый ведущий или каким-либо другим способом автоматически обрабатывать обход отказа с Redis.
Используйте SlaveofCommand для изменения характеристик. Для автоматического обхода отказа потребуется немного больше кодирования, подключитесь к серверу и, если вы потеряли соединение и не можете установить его снова в течение времени X, выберите одного ведомого ведущим и измените статус slave-master-status всех остальных серверов.
Обновление (01. Aug. 2012): Теперь есть redis sentinel, решение для мониторинга и автоматического обхода отказа для версии 2.4.16 и выше.