Искате решение Active-Active, известно още като мулти главен, но въпросът ви подсказва, че може да не ви трябва.
Ако изисквате само една от базите данни да е достъпна за записване, т.е. всички записи винаги вървят, можете да постигнете това със стандартната главна-подчинена репликация на Redis. Насочете приложението си да използва главния за запис и (потенциално) накарайте вашия подчинен да обслужва и част от четенията. Ако главният не успее, повишете подчинения във 2ndary DC да бъде нов главен и пренасочете вашето приложение/клиенти да го използват. Наблюдението и популяризирането могат да бъдат постигнати с Redis's Sentinel.
Има няколко неща, които трябва да вземете предвид, когато прилагате този тип настройка. Първо имайте предвид, че репликацията на Redis е асинхронна, така че в зависимост от натоварването на вашия главен компютър, обема на записвания и качеството на мрежовата връзка на репликацията, можете да загубите някои от последните актуализации в случай на отказ. Второ, по същата тема, мрежовата връзка между DC може да бъде склонна към ограничена честотна лента и повишена латентност - трябва да конфигурирате Redis да се справя с това и може би да използвате компресия за този трафик (например чрез SSH тунел). И накрая, за да откриете точно неуспехите, ще искате да имате поне 3 Sentinels на различни места. Но въпреки тези предизвикателства, всичко това е изпълнимо.
Въпреки това, настройка с множество главни, при която записи могат да се извършват произволно срещу всяка база данни не поддържана от Redis в момента. Ако това всъщност е това, от което се нуждаете, помислете за използването на друго решение.
Забележка:в зависимост от вашите точни изисквания, ако можете да гарантирате, че записите към различни DC са взаимно изключващи се (т.е. всеки DC получава записи само към отделен подмножество от ключове, които не се споделят от другия DC), можете да използвате две бази данни с главен във всеки DC и подчинения в другия.