Redis kann als Remote -Wörterbuchserver identifiziert werden, der hauptsächlich für die Geschwindigkeit ausgelegt ist. Darüber hinaus wird es häufig als In-Memory-Cache und NoSQL-Datenbank verwendet. Als Datenbank oder Cache ist es wichtig, eine hohe Datenzugriffsrate, eine hohe Verfügbarkeit, Datenschutz- und Skalierbarkeitsfunktionen bereitzustellen. Redis führte Sentinel- und Cluster -Lösungen ein, um die genannten Aspekte anzugehen.
Redis -Cluster
Die Redis -Cluster -Technologie, die aus Version 3 eingeführt wurde.0 Ermöglicht die horizontale Skalierung für eine bestimmte Redis -Bereitstellung. Mit Redis -Clustern werden die Daten über mehrere Clusterknoten aufgeteilt, die eine konsistente und zuverlässige Datenserviceschicht für Anwendungen liefern.
Es ist ein Muss, mindestens drei Hauptknoten zu haben, damit ein Cluster ordnungsgemäß funktionieren kann. Zusätzlich sollte jeder Masterknoten mindestens einen einzelnen Sklavenknoten haben. Darüber hinaus ermöglichen Redis -Cluster bis zu einem gewissen Grad eine hohe Verfügbarkeit, indem ein Slaveknoten fördert.
Jeder Clusterknoten kommuniziert mit anderen Knoten mit einem binären Protokollbasierten Knoten-zu-Knoten-Kommunikationskanal. Zusätzlich ist jeder Knoten für Clientverbindungen mithilfe des Standard -TCP -Ports geöffnet.
Das Folgende ist eine hochrangige Skizze einer grundlegenden Redis-Cluster-Konfiguration:
Profis:
Nachteile:
Redis Sentinel
Redis Sentinel ist ein hochverfügbarkeitsansatz für Redis-Bereitstellungen, der als separates Programm im Hintergrund ausgeführt wird. Es bringt viele Funktionen in Ihre Redis -Bereitstellungen ein, indem Sie den Status des Master- und Slave -Knotens ständig überprüfen, die wesentlichen Änderungen im Zusammenhang mit den überwachten Instanzen über eine API informieren, den automatischen Failover -Prozess initialisieren, wenn ein Masterfehler auftritt, und als Quelle von Die Behörde für Kunden, die aktuell Active Redis Master Node IP -Adresse herauszufinden.
Ein Redis -Sentinel -Setup kann mit mindestens drei Sentinel -Knoten implementiert werden, wodurch die meisten Probleme in einer bestimmten Redis -Bereitstellung vermieden werden können. Darüber hinaus definiert der Quorum -Wert in einer bestimmten Sentinel -Konfiguration die Mindestanzahl der Sentinel -Knoten, die bestätigen sollten, wenn ein Master fehlgeschlagen ist.
Im Allgemeinen wird der Redis -Sentinel in erster Linie verwendet, um die hohe Verfügbarkeit einer Redis -Datenbank zu unterstützen, in der sie besser abschneidet als im Clustering.
Das Folgende ist eine hochrangige Darstellung einer minimalen Redis-Sentinel-Konfiguration:
Profis:
Nachteile:
Redis Sentinel gegen Cluster
Redis -Cluster und Sentinel sind zwei Ansätze, bei denen jeweils unterschiedliche Aspekte im Zusammenhang mit einer Redis -Bereitstellung angesprochen werden. Der REDIS -Cluster -Ansatz ist für komplizierte Implementierungen besser geeignet, die sich mit massiven Datensätzen befassen, in denen er automatische Daten zum Lesen/Schreiben von Abfragen, automatischem Master -Failover und Replikation mit hoher Verfügbarkeit bis zu einem gewissen Grad zur Verfügung stellt. Darüber hinaus können die Redis -Clusterknoten mühelos skaliert werden.
Andererseits konzentriert sich der Redis -Sentinel mehr auf kleinere Implementierungen, wobei die hohe Verfügbarkeit berücksichtigt wird.
Verfügbarkeit
Redis Cluster unterstützt keine hohe Verfügbarkeit nicht vollständig. Denn wenn die Mehrheit der Meister nicht verfügbar ist, kann der Cluster sinken. Im Gegensatz zum Cluster -Ansatz bietet der Redis Sentinel eine hohe Verfügbarkeit ohne menschliche Intervention. Am wichtigsten ist, dass der Sentinel auch mit einer einzigen laufenden Master -Instanz überleben kann, wenn ein kritischer Fehler auftritt.
Daten Sharding
Redis Cluster bietet Sharding -Funktionen, bei denen die Daten auf mehrere Knoten verteilt sind, wenn Clients Netzwerkzugriff auf alle Knoten haben. Es ermöglicht eine erhöhte Leistung und Datenspeicherkapazität.
Andererseits bietet Redis Sentinel keine Ruhemöglichkeiten an. Weil das Sharding die Ungleichgewichtsnutzung des Meisters und des Sklaven verursacht.
Reproduzieren
Beide Ansätze bieten Master -Replikation mit einigen Einschränkungen. Redis Sentinel ermöglicht die Replikation für mehrere Schichten, bei denen mehrere Sklavenknoten sich von einer bestimmten Master -Instanz replizieren können. Im Gegensatz dazu erlaubt der Redis -Cluster -Ansatz keine Replikation für mehrere Ebenen. Es ist nur in der Lage, die Master -Instanz zu einem einzelnen Sklavenknoten zu replizieren. Beide Ansätze beeinträchtigen die Konsistenz aufgrund der asynchronen Replikation.
Skalierbarkeit
Redis -Cluster sind sehr skalierbar. Es unterstützt bis zu tausend Knoten in einem bestimmten Einzelcluster -Setup. Darüber hinaus ermöglichen Cluster das Hinzufügen und Entfernen von Knoten dynamisch und mühelos. Redis Sentinel ist nicht skalierbar und schreibt an die Master-Instanz, daher ist der Sentinel nicht in der Lage, mit den Les-Schreib-Trennungsproblemen zu befassen.
Die Architektur
Ein voll funktionsfähiger Redis -Sentinel kann mit nur drei Knoten erstellt werden. Um jedoch einen Redis -Cluster einzurichten, sind mindestens drei Master -Knoten und drei Sklaven erforderlich.
Abschluss
Zusammenfassend lässt sich sagen. Auf der anderen Seite wurde Redis Sentinel hauptsächlich für einfache Anwendungen erstellt, die sich hauptsächlich auf hohe Verfügbarkeit konzentrieren. Im Vergleich sind beide Lösungen mit ihren Vor- und Nachteilen ausgestattet, aber die Endbenutzer mit einer fein abgestimmten Redis-Bereitstellung zu unterstützen.