Redis rozproszony zamek

Redis rozproszony zamek

W Redis partycjonowanie odnosi się do podziału danych na wiele instancji. Oznacza to, że każda Redis przechowuje sekcję całego zestawu danych. Jest to przydatna funkcja, szczególnie w przypadku dużych zestawów danych.

Spójrzmy na różne rodzaje partycjonowania w Redis oraz koszty i korzyści z każdego.

Rodzaje partycjonowania Redis

Istnieją dwa mechanizmy podziału w Redis:

  1. Partycjonowanie zasięgu
  2. Partycjonowanie hash

Działanie partycjonowanie

Najlepszym sposobem wyjaśnienia partycjonowania jest zastosowanie analogii. Załóżmy, że masz cztery instancje Redis: R0, R1, R2 i R3. Załóżmy również, że musisz przechowywać klucze w formacie użytkownika: [ID].

Możesz użyć partycjonowania Range, aby podzielić dane na dostępne instancje Redis.

W partycjonowaniu zakresu mapujesz sekcję swoich danych na określoną instancję. Na przykład możesz wziąć klawisze od użytkownika: [id - id] i mapować go na instancję R0. Instancja R1 może pomieścić podzbiór klawiszy od użytkownika [id - id] i tak dalej.

Jest to najprostsza i najbardziej obowiązująca forma partycjonowania w Redis. Jednak zapewnia ograniczenie.

Partycjonowanie zasięgu wymaga tabeli, która mapuje określony zakres dla odpowiedniego klastra.

Tabela mapowania wymaga zarządzania i zastosowania dla każdego partycjonowanego typu danych.

Partycjonowanie hash

Drugą alternatywą dla partycjonowania zasięgu jest partycjonowanie skrótu. Redis używa funkcji mieszania do konwersji klucza na liczbę w tej metodzie partycjonowania.

Na przykład, jeśli mamy kluczowy „fakt”, możemy przekonwertować go na liczbę za pomocą funkcji mieszania, takiej jak CRC-16.

Powinno to zwrócić numer 8167.

Następnie Redis stosuje operację modulo do liczby i zwraca wynik od 0 do 3.

Na przykład:

8167 % 2

Powyższa operacja powinna zwrócić 1. Redis następnie używa tej wartości do ustalenia, który klaster powinien być przechowywany. W naszym przykładzie kluczowy „fakt” jest przechowywany w przypadku R1.

NOTATKA: Nie w ten sposób wykonywana jest operacja mieszania w Redis. Powyższe jest tylko analogią.

Zalety partycjonowania.

  1. Particing umożliwia wielu instancjom udostępnianie pamięci i przechowywanie danych.
  2. Zezwalaj na skalowanie mocy obliczeniowej.

Wady podziału

  1. Obsługa wielu kwalifikacji jest nieobsługiwana.
  2. Nie możesz wykonać transakcji Redis za pomocą wielu kluczy.
  3. Wprowadza dwuznaczność w radzeniu sobie z wytrwałością.
  4. Zmniejszenie lub rosnące dane okazują się trudne.

Wniosek

W tym przewodniku odkryłeś różne mechanizm podziału Redis. Sprawdź dokumentację, aby dowiedzieć się więcej.