sql >> Databáze >  >> NoSQL >> Redis

Použití Redis Replication na různých počítačích (multi master)

Žádáte řešení Active-Active, neboli multi master, ale vaše otázka naznačuje, že ho možná nebudete potřebovat.

Pokud požadujete, aby byla pro zápis k dispozici pouze jedna z databází, tj. všechny zápisy vždy probíhají, můžete toho dosáhnout pomocí standardní replikace master-slave společnosti Redis. Nasměrujte svou aplikaci tak, aby používala master pro zápisy a (potenciálně) aby váš slave obsluhoval také některá čtení. Pokud master selže, povyšte slave ve 2. DC na nového mastera a přesměrujte svou aplikaci/klienty, aby jej používali. Monitorování a propagaci lze dosáhnout pomocí Redis' Sentinel.

Při implementaci tohoto typu nastavení budete muset vzít v úvahu několik věcí. Nejprve si všimněte, že replikace Redis je asynchronní, takže v závislosti na zatížení vašeho hlavního serveru, objemu zápisů a kvalitě síťového spojení replikace můžete v případě selhání ztratit některé z posledních aktualizací. Zadruhé a na stejné téma by propojení mezi DC sítí mohlo být náchylné k omezené šířce pásma a zvýšené latenci – měli byste nakonfigurovat Redis, aby to zvládl a možná pro tento provoz použít kompresi (např. prostřednictvím tunelu SSH). A konečně, abyste mohli přesně detekovat selhání, budete chtít mít alespoň 3 Sentinely na různých místech. Ale navzdory těmto výzvám je to všechno proveditelné.

To znamená, že nastavení s více mastery, ve kterém lze libovolně provádět zápisy do jakékoli databáze, není v současnosti podporuje Redis. Pokud to skutečně potřebujete, zvažte použití jiného řešení.

Poznámka:v závislosti na vašich přesných požadavcích, pokud můžete zaručit, že se zápisy do různých řadičů domény vzájemně vylučují (tj. každý řadič domény zapisuje pouze do odlišné podmnožiny klíčů, které nejsou sdíleny druhým řadičem domény), můžete použít dvě databáze s hlavní v každém DC a slave v druhém.




  1. ActionCable na AWS:Chyba během handshake WebSocket:Neočekávaný kód odpovědi:404

  2. jak uložit složitý objekt v redis (pomocí redis-py)

  3. nelze se připojit k kontejneru redis z kontejneru aplikace

  4. Připojení odmítlo MongoDB errno 111