Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Redis aktywna-aktywna replikacja

Redis v2.8.3 nie obsługuje konfiguracji z wieloma wzorcami. Prawdziwe pytanie brzmi jednak, dlaczego chcesz go założyć? Innymi słowy, jakie wyzwanie/problem próbujesz rozwiązać?

Wygląda na to, że wyzwaniem, które próbujesz rozwiązać, jest zmniejszenie obciążenia sieci (więcej na ten temat poniżej) poprzez wyeliminowanie odczytów przez Internet. Ponieważ Redis nie jest multi-master (jeszcze), jedynym sposobem, aby to zrobić, jest skonfigurowanie każdego serwera aplikacji z masterem i urządzenie podrzędne (do drugiego mastera) - tj. w sumie 4 instancje Redis (i dwa razy więcej pamięci RAM).

Prosty scenariusz polega na tym, że każda aplikacja aktualizuje tylko wzajemnie wykluczający się podzbiór kluczy bazy danych. W takim scenariuszu tego rodzaju konfiguracja może być rzeczywiście korzystna (przynajmniej w krótkim okresie). Jeśli jednak obie aplikacje mogą dotykać wszystkich klawiszy lub nawet jeden klucz jest „współdzielony” do zapisu między aplikacjami, musisz wkleić logikę blokowania/rozwiązywania konfliktów/itd. do swoich aplikacji, aby skonsolidować lokalny master i różnice niewolników (a to może być trochę przesada). Jednak w obu przypadkach otrzymasz zbyt wiele (tj. więcej niż 1) ponownych wersji, co oznacza co najmniej więcej wysiłku administracyjnego.

Pamiętaj również, że kolokując aplikację i bazę danych na tym samym serwerze, narażasz się na prawie pewną awarię skalowalności. Co się stanie, gdy będziesz potrzebować więcej zasobów obliczeniowych dla swoich aplikacji lub Redis? Jak dodasz kolejny serwer aplikacji do miksu?

Co sprowadza mnie z powrotem do rzeczywistego problemu, który próbujesz rozwiązać - obciążenia sieci. Dlaczego dokładnie jest to problem? Czy Twoje aplikacje mają tak dużą przepustowość, czy też sieć jest tak cienka, że ​​chcesz posunąć się do takich rozmiarów? A może opóźnienie jest problemem, który chcesz rozwiązać? Tak czy inaczej, zalecam rozważenie sprawdzonego projektu, a mianowicie oddzielenie Redis od aplikacji i umieszczenie go na własnych zasobach. To prawda, że ​​sieć uderzy cię w twarz i będziesz musiał z nią pracować (co robią wszyscy inni). Z drugiej strony będziesz mieć większą elastyczność i kontrolę nad znacznie prostszą konfiguracją, co w mojej książce jest ogromnym zyskiem.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Liczba skanów Redis:jak zmusić funkcję SCAN do zwracania wszystkich kluczy zgodnych ze wzorcem?

  2. Nazwa pola identyfikatora jednostek ServiceStack

  3. Serwer Redis nie może uruchomić więcej niż 1024M maxheap

  4. Najlepsza praktyka aktualizacji Redis za pomocą Sentinels?

  5. Przełączanie awaryjne klastra Redis:urządzenie podrzędne nie zostanie nadrzędne