Latest web development tutorials

Redis Partition

Partition in eine Vielzahl von Datenverarbeitungs unterteilt Redis Fällen jede Instanz nur eine Teilmenge des Schlüssels zu speichern.

Vorteile der Partitionierung

  • Durch die Verwendung von mehr als einem Computerspeicher und Werte ermöglichen es uns, eine größere Datenbank zu konstruieren.
  • Durch die Multi-Core und Multi-Prozessor-Computern, so dass wir Rechenkapazität zu erweitern, durch mehrere Computer und Netzwerk-Adapter, so dass wir die Netzwerk-Bandbreite zu erweitern.

Unzureichende Partition

Einige Funktionen redis in Partitionierung Leistung ist nicht sehr gut:

  • Operation umfasst mehr als eine Taste in der Regel nicht unterstützt. Wenn zum Beispiel zwei Satz auf verschiedene Instanzen von redis abgebildet, werden Sie nicht in der Lage sein, diese beiden eingestellten Schnittoperation auszuführen.
  • Es geht um eine Reihe von Schlüssel redis Transaktion kann nicht verwendet werden.
  • Wenn Partitionen, die komplexere Datenverarbeitung, zum Beispiel, müssen Sie mehrere RDB / AOF-Dateien und Backup-Dateien von mehreren Instanzen von Persistenz und Host zu behandeln.
  • Hinzufügen oder Entfernen von Kapazität ist auch komplizierter. redis Mehrheit Cluster zur Laufzeit erhöht, transparente Datenknoten löschen Gleichgewicht der Macht, aber ähnlich dem Client-Partition, Agenten und andere Systeme unterstützen diese Funktion nicht. Jedoch ist diese Technik genannt presharding hilfreich.

Partitionstyp

Redis Es gibt zwei Arten von Trennwänden. Angenommen, es sind vier Redis Beispiel R0, R1, R2, R3 und ähnliche Benutzer: 1, user: eine Vielzahl von Tasten 2 einer solchen Darstellung auf Benutzer, da der Schlüssel eine Vielzahl von verschiedenen Möglichkeiten, um auszuwählen, in dem der Schlüssel in dem Fall gespeichert ist . Mit anderen Worten, gibt es verschiedene Systeme, einen Schlüssel zu einem Redis Dienst abzubilden.

Bereichspartitionierung

Der einfachste Weg ist die Bereichspartitionierung zu partitionieren, um eine Reihe von fachspezifischen Redis Instanz zugeordnet ist.

Zum Beispiel, ID 0-10000 Benutzer die Instanz R0, ID 10.001-20.000 Benutzer speichern wird R1 werden gespeichert, und so weiter.

Dieser Ansatz ist möglich und die praktische Anwendung ist eine Reihe von weniger aufweisen als der Bereich der Abbildungstabelle Instanz. Diese Tabelle ist zu verwalten, sondern auch verschiedene Objekte abbilden müssen, in der Regel Redis ist keine gute Methode.

Hash-Partitionierung

Ein weiterer Ansatz ist die Partitionierung Partitionen Hash. Dies gilt für jeden Schlüssel und muss nicht sein Objekt_Name: Diese Form, so einfach wie im Folgenden beschrieben:

  • Mit der Taste eine Hash-Funktion wird in eine Zahl umgewandelt, wie crc32 Hash-Funktion verwendet wird. Die Umsetzung der wichtigsten foobar crc32 (foobar) ausgibt eine ganze Zahl von ähnlichen 93.024.922.
  • Dieser ganzzahlige Modulo, der auf digitale zwischen 0-3 umgewandelt wurde, kann es auf die ganze Zahl 4 Redis Instanz sein gemappt werden. 93024922% 4 = 2, ist, dass die Schlüssel foobar R2-Instanz gespeichert werden sollen. Hinweis: Die Modulo-Operation ist es, den Rest der Zugabe zu nehmen, wird der Operator% der Regel implementiert eine Vielzahl von Programmiersprachen.