Я оцениваю Redis как альтернативу кэширования. Кэш должен быть развернут в кластерной конфигурации с двумя центрами обработки данных с n компьютерами в каждом из центров обработки данных. Из имеющейся документации я смог относительно легко настроить конфигурацию master / slave. Приложение является приложением Rails и в настоящее время планирует использовать его только для хранилища кеша и не будет выполнять более сложные операции с наборами, поэтому данные из одного и того же набора, находящиеся в разных физических коробках, не являются проблемой. Несколько вопросов и разъяснений у меня были:
В конфигурациях «ведущий / ведомый», что произойдет, если главный узел выйдет из строя? Как выбрать или выбрать новый главный узел? Нужно ли изменить конфигурацию или можно выбрать новый мастер на работающем кластере? Как приложения, использующие магазин, узнают, какой новый мастер без проблем? Есть ли доступный гем, который абстрагирует эту логику от конечного приложения?
Как правило, не рекомендуется иметь зависимости между центрами обработки данных, так как следует планировать отключение одного центра обработки данных и масштабирование приложения. Однако это означает, что каждый элемент данных кэшируется дважды по одному на каждой стороне. Хотя я считаю, что первый пункт важнее дублирования данных. Является ли разделение данных между двумя кластерами лучшим из обоих миров? Какую поддержку шардинга предоставляет Redis? Возможно ли в двух разных центрах обработки данных иметь двух основных авторов? И указав, что серверы приложений сначала пробуют подчиненные узлы на одной и той же стороне и переходят на другую сторону, только если все ведомые в одном и том же центре обработки данных не работают.
Я ясно о том, как настроить конфигурацию master / slave в отношении серверов redis. Как настроить клиенты, чтобы указать, какой из них является главным, а какие - подчиненными. Как распределяется нагрузка между узлами чтения? Есть ли способ настроить схему циклического перебора или каждый сервер приложений настроен на переход к одному ведомому устройству для всех операций чтения?
Извините за большое количество вопросов, но любая помощь будет принята с благодарностью.