Frage

  1. Wer weiß, den Unterschied zwischen redis Replikation und Redis Sharding?
  2. Was werden sie nutzen für? Redis speichert Daten im Speicher, wie funktioniert dies Auswirkungen auf die Replikation / Sharding?
  3. Ist es möglich, zusammen, beide zu benutzen?

Danke!

War es hilfreich?

Lösung

Sharding ist Gegenpol der fast Replikation, obwohl sie orthogonale Konzepte und arbeiten gut zusammen.

Sharding, die auch als Partitionierungs bekannt, ist Aufspaltung der Daten durch Taste nach oben; Während der Replikation, auch bekannt als Spiegelung, ist es, alle Daten zu kopieren.

Sharding ist nützlich, die Leistung zu erhöhen, die Treffer und Speicherauslastung auf einem Ressource zu reduzieren. Die Replikation ist nützlich für eine hohe Verfügbarkeit von liest. Wenn Sie aus mehreren Replikaten lesen, werden Sie auch die Trefferquote auf alle Ressourcen verringern, aber der Speicherbedarf für alle Ressourcen bleibt gleich. Es sollte beachtet werden, dass, während Sie an einen Slave schreiben kann, Replikation Master-> Slave nur. So kann man nicht maßstab schreibt auf diese Weise.

Angenommen, Sie folgende Tupel haben: [1: Apple-], [2: Banana], [3: Kirsch], [4: Durian] und wir haben zwei Maschinen A und B. Mit Sharding, könnten wir speichern die Tasten 2 , 4 auf Maschine A; Tasten und 1,3 auf der Maschine B. Mit Replication speichern wir Tasten 1,2,3,4 auf Maschine A und 1,2,3,4 auf Maschine B.

Sharding wird typischerweise durch Ausführen einer konsistenten Hash auf dem Schlüssel implementiert. Das obige Beispiel wurde mit der folgenden Hash-Funktion h (x) {return x% 2 == 0? A: B} implementiert.

Um die Konzepte zu kombinieren, könnten wir jede Scherbe replizieren. In den obigen Fällen alle Daten (2,4) der Maschine A kann auf Maschine C repliziert werden, und alle Daten (1,3) der Maschine B kann auf Maschine D repliziert werden.

Alle Schlüsselwertspeicher (davon Redis nur ein Beispiel ist) unterstützt Sharding, obwohl bestimmte Querschlüsselfunktionen nicht mehr funktionieren. Redis unterstützt Replikation aus dem Kasten heraus.

Andere Tipps

In einfachen Worten, der grundlegende Unterschied zwischen den beiden Begriffen ist, dass Sharding maßstab Writes verwendet wird, während Replikation verwendet wird, um Skala liest. Wie Alex bereits erwähnt, Replikation ist auch eine der Lösungen für HA zu erreichen.

Ja, sie sind beide normalerweise verwendet, zusammen, wenn man bedenkt, wie Scherben über die Knoten in einem Cluster repliziert werden können.

Im Hinblick auf Ihre dritte Frage, anstelle der RAM-Spüloption, ist es eine bessere Idee, die Redis anhang Nur Datei (AOF) zu verwenden. Bei nur einem geringen Kosten (in Bezug auf die Schreibgeschwindigkeit), können Sie viel mehr Zuverlässigkeit Ihrer schreibt bekommen. Es ist ganz wie der MySQL-Binärlog. Die 1 fsync / Sekunde ist die empfohlene Option.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top