Как объясняется в документе StackExchange.Redis Основы, вы можете подключиться к нескольким серверам Redis, а StackExchange.Redis автоматически определит мастер /slave. Цитирование соответствующей части:
Более сложный сценарий может включать установку ведущего/ведомого; для этого использования просто укажите все нужные узлы, которые составляют этот логический уровень повтора (он автоматически идентифицирует мастер):
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");
Я выполнил тест, в котором я вызвал переход на другой ресурс, так что мастер немного снизился, в результате старая раба стала новым мастером, а старый мастер стал новым подчиненным. Я заметил, что, несмотря на это изменение, StackExchange.Redis продолжает отправлять команды на старый мастер, в результате чего операции записи прерываются.
Вопросы по вышеперечисленному:
- Как StackExchange.Redis определяет, какую конечную точку использовать?
- Как следует использовать несколько конечных точек (как в приведенном выше примере)?
Я также заметил, что для каждого соединения StackExchange.Redis открывает два физических соединения, один из которых является своего рода подпиской. Для чего это точно? Используется ли он экземплярами Sentinel?