Я использую redis в качестве кеш-сервера. Могу ли я как-то настроить несколько серверов Redis, чтобы кеш был полностью функциональным (чтение / запись), даже если некоторые из них отключены?
Я посмотрел на master-> slave, но проблема, которую я вижу, заключается в том, что если мастер выходит из строя, и я разрешаю запись на подчиненные устройства, они перезаписываются, когда мастер снова включается. Теперь мастер просто обслуживает старые данные.
Единственное решение, которое я мог придумать, - это отключить запись на диск, но это отстой, поскольку я теряю все, если мне придется перезапустить мастер. И я думаю, рабы больше не будут синхронизироваться, если хозяин уйдет.
В Redis нет настройки мастер-мастер.
Что происходит, когда ваш главный сервер отключается, а вы разрешаете запись на подчиненный сервер:
Подчиненный сервер становится главным.
Очевидно, это требует изменения конфигурации (можно сделать во время выполнения).
И когда вы возвращаете старый мастер, вы должны синхронизировать изменения с новым мастером.
Простое обращение к мастеру после простоя приведет к несоответствиям.
Есть хорошее объяснение, как перезапустить Redis без простоев или потери данных:
http://redis.io/topics/admin