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.
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 bereitzustellenRedis-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 zuDas obige ist der detaillierte Inhalt vonRedis-Cluster-Prinzip. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!