Pytasz o rozwiązanie Active-Active, czyli multi master, ale Twoje pytanie sugeruje, że możesz go nie potrzebować.
Jeśli potrzebujesz tylko jednej bazy danych do zapisu, tj. Wszystkie zapisy zawsze działają, możesz to osiągnąć dzięki standardowej replikacji Redis master-slave. Skieruj swoją aplikację, aby używała mastera do zapisu i (potencjalnie) niech twój slave obsługuje również niektóre odczyty. Jeśli master ulegnie awarii, promuj slave w drugim DC jako nowy master i przekieruj aplikację/klientów, aby z niego korzystali. Monitorowanie i promowanie można osiągnąć dzięki Sentinel firmy Redis.
Jest kilka rzeczy, które musisz wziąć pod uwagę podczas wdrażania tego typu konfiguracji. Po pierwsze zauważ, że replikacja Redis jest asynchroniczna, więc w zależności od obciążenia mastera, ilości zapisów i jakości łącza sieciowego replikacji, możesz utracić niektóre z ostatnich aktualizacji w przypadku awarii. Po drugie i na ten sam temat, łącze sieciowe między DC może być podatne na ograniczoną przepustowość i zwiększone opóźnienia - powinieneś skonfigurować Redis, aby obsłużył to i być może użyć kompresji dla tego ruchu (np. przez tunel SSH). Wreszcie, aby dokładnie wykrywać awarie, musisz mieć co najmniej 3 Strażników w różnych lokalizacjach. Ale pomimo tych wyzwań to wszystko jest wykonalne.
To powiedziawszy, konfiguracja z wieloma wzorcami, w której zapisy mogą być arbitralnie wykonywane w dowolnej bazie danych nie jest obecnie wspierany przez Redis. Jeśli rzeczywiście tego potrzebujesz, rozważ użycie innego rozwiązania.
Uwaga:w zależności od dokładnych wymagań, jeśli możesz zagwarantować, że zapisy do różnych kontrolerów domeny wzajemnie się wykluczają (tj. każdy kontroler domeny otrzymuje zapisy tylko do odrębnego podzbioru kluczy, które nie są współdzielone przez inny kontroler), możesz użyć dwóch baz danych z masterem w każdym DC, a slave w drugim.