Heim  >  Artikel  >  Datenbank  >  Redis-Cluster-Prinzip

Redis-Cluster-Prinzip

(*-*)浩
(*-*)浩Original
2019-06-03 16:52:429579Durchsuche

Redis ist eine typische No-SQL-Datenbank, also eine nicht relationale Datenbank, die Schlüssel-Wert-Paare wie ein Python-Wörterbuch speichert. Sie funktioniert im Speicher

und ist daher sehr gut geeignet Insbesondere dient die gesamte Internetarchitektur als Cache zwischen den verschiedenen Ebenen, z. B. der 4-Schicht-Weiterleitungsschicht von LVS und der 7-Schicht-Proxy-Schicht von Nginx Die Anwendungsschicht der LNMP-Architektur wie PHP-FPM oder Tomcat zu MySQL. Erstellen Sie einen Cache zwischen ihnen, um den Druck auf die Datenbank zu verringern.

Da ein beträchtlicher Teil der Daten nur eine einfache Schlüssel-Wert-Korrespondenz ist, und in Im tatsächlichen Geschäft ändert es sich oft schnell in kurzer Zeit. Redis-Cluster-Prinzip

Wenn Sie eine relationale Datenbank wie MySQL als Speicher verwenden, wird der Zugriff auf die Datenbank erheblich erhöht, was zu einer starken Belastung der Datenbank führt. Denn vor allem die Anforderungen werden irgendwann zur Datenbank konvergieren

. Wenn Sie also Geschäftsstabilität wünschen, dann lösen Sie die Datenbank. Der Druck ist der Schlüssel, daher bestehen die meisten Lösungen jetzt darin, mehrstufige No- zu verwenden. SQL auf allen Ebenen oberhalb der Datenbankebene

wie Memcache Redis usw., um Pufferung für die Datenbank bereitzustellen

Redis-Cluster

Redis-Cluster ist ein Anlageninstallation, die Daten zwischen mehreren Redis-Knoten teilen kann.

Redis-Cluster unterstützt keine Redis-Befehle, die mehrere Schlüssel gleichzeitig verarbeiten müssen, da die Ausführung dieser Befehle das Verschieben von Daten zwischen mehreren Redis-Knoten erfordert und unter hohen Lastbedingungen diese Befehle den Redis-Cluster verlangsamen die Leistung beeinträchtigen und zu unvorhersehbarem Verhalten führen.

Der Redis-Cluster bietet durch Partitionierung ein gewisses Maß an Verfügbarkeit: Auch wenn einige Knoten im Cluster ausfallen oder nicht kommunizieren können, kann der Cluster weiterhin Befehlsanfragen verarbeiten.

Redis-Cluster bietet die folgenden zwei Vorteile:

Die Möglichkeit, Daten automatisch in mehrere Knoten aufzuteilen.

Wenn einige Knoten im Cluster ausfallen oder nicht kommunizieren können, können sie weiterhin Befehlsanfragen verarbeiten.

Cluster-Prinzip

Alle Redis-Knoten sind miteinander verbunden (PING-PONG-Mechanismus) und intern wird ein Binärprotokoll verwendet, um Übertragungsgeschwindigkeit und Bandbreite zu optimieren.

Der Ausfall eines Knotens wird erst dann wirksam, wenn mehr als die Hälfte der Knoten im Cluster einen Ausfall erkennen.

Der Client ist direkt mit dem Redis-Knoten verbunden, ohne dass eine Zwischen-Proxy-Schicht erforderlich ist. Der Client muss sich nicht mit allen Knoten im Cluster verbinden, sondern nur mit jedem verfügbaren Knoten im Cluster.

redis-cluster ordnet alle physischen Knoten dem [0-16383]-Slot zu. Cluster ist für die Aufrechterhaltung des Node<->slot<->-Werts verantwortlich.

16384 ist in den Redis-Cluster integriert Ein Hash-Slot: Wenn ein Schlüsselwert im Redis-Cluster platziert werden muss, verwendet Redis zunächst den crc16-Algorithmus, um ein Ergebnis für den Schlüssel zu berechnen, und berechnet dann den Rest des Ergebnisses auf 16384, sodass jeder Schlüssel entspricht eine Zahl zwischen 0 und 16383 Hash-Slots dazwischen, ordnet Redis die Hash-Slots entsprechend der Anzahl der Knoten ungefähr gleichmäßig verschiedenen Knoten zu

Das obige ist der detaillierte Inhalt vonRedis-Cluster-Prinzip. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn