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

Konsekwentne mieszanie jako sposób na skalowanie zapisów

Istnieją dwa powody używania wielu węzłów w klastrze:

  • Sharding w celu ograniczenia ilości danych przechowywanych w każdym węźle
  • Duplikacja w celu zmniejszenia obciążenia odczytu i umożliwienia usunięcia węzła bez utraty danych.

Te dwa są zasadniczo różne, ale możesz zaimplementować oba - użyj spójnego hashowania, aby wskazać zestaw węzłów ze standardową konfiguracją master/slave, a nie pojedynczym węzłem.

Jeśli klaster jest Twoim głównym magazynem danych, a nie pamięcią podręczną, będziesz potrzebować innej strategii redystrybucji, która obejmuje kopiowanie danych.

Moja implementacja opiera się na tym, że klient wybiera jeden z 64k wiader dla hash i posiada tabelę, która mapuje ten wiadro do węzła. Początkowo wszystkie mapowane do węzła nr 1.

Gdy węzeł nr 1 staje się zbyt duży, jego podrzędny staje się węzłem głównym nr 2, a tabela jest aktualizowana w celu odwzorowania połowy kluczy węzła nr 1 na węzeł nr 2. W tym momencie wszystkie odczyty i zapisy będą działać z nowym mapowaniem i wystarczy wyczyścić klucze, które są teraz w niewłaściwym węźle. W zależności od wymagań dotyczących wydajności możesz sprawdzić wszystkie klucze naraz lub sprawdzić losowy wybór kluczy, tak jak robi to system wygaśnięcia.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Rozszerzenie phpredis nie działa, nie można załadować „redis.so”

  2. Która baza danych noSQL jest najlepsza do wstawiania/zapisów o dużej objętości?

  3. Błąd integracji Redis z JHipster CacheConfiguration

  4. Klucz wygasania danych Spring Data Redis

  5. Masowe wstawianie Redis