Sentinel-Modus
Es handelt sich um eine Hochverfügbarkeitslösung. Sentinel selbst ist ein unabhängig laufender Prozess und kann zur Überwachung eingesetzt werden Redis-Cluster auf anderen Maschinen, die mit dem Redis-Cluster kommunizieren können.
Überwachung: Sentinel überwacht regelmäßig, ob Redis gut läuft. (Empfohlenes Lernen: Redis-Video-Tutorial)
Erinnerung: Wenn der Sentinel eine Situation in einem Redis-Knoten findet, kann er einen anderen Prozess (z. B. seinen Client) benachrichtigen.
Automatisches Failover: Nach dem Ausfall des Masters wird ein Master-/Backup-Wechsel durchgeführt. Wenn der Client versucht, eine Verbindung zum ausgefallenen Master-Server herzustellen, gibt der Cluster auch die Adresse des neuen Master-Servers an den Client zurück, sodass der Cluster den ausgefallenen Server durch den neuen Master-Server ersetzen kann. Wenn sich der Master erholt, wird er zum Slave.
Redis Sentinel ist ein verteiltes System, das das Gossip-Protokoll verwendet, um zu empfangen, ob der Master offline ist, und das Abstimmungsprotokoll verwendet, um zu entscheiden, ob eine Fehlermigration durchgeführt werden soll (diese wird ausgeführt, wenn die Anzahl der Stimmen die überschreitet). (Konfigurierter Wert, und es wird ausgeführt, wenn die Anzahl der Stimmen den konfigurierten Wert überschreitet. Es muss von mehr als der Hälfte der Sentinels genehmigt werden, bevor es ausgeführt werden kann) und welcher Slave als Master ausgewählt wird.
Subjektiv offline: Wenn ein Sentinel-Prozess überwacht, dass der Master keine Verbindung herstellen kann, geht er davon aus, dass der Master offline ist.
Ziel offline: Stellen Sie beim Empfang von Masterinformationen von anderen Sentinel-Prozessen fest, ob diese wirklich offline sind.
Jeder Sentinel sendet jede Sekunde Ping-Anfragen an Master, Slave und andere Sentinels.
Cluster-Modus
Da Sentinel keine reibungslose Erweiterung und das Hinzufügen von Knoten unterstützt, müssen Sie die Daten manuell migrieren. Zu diesem Zweck stellt Reids offiziell Redis Cluster zur Implementierung verteilter Lösungen bereit. Verteilte Cluster lösen zunächst das Problem, den gesamten Datensatz gemäß Partitionierungsregeln auf mehrere Knoten abzubilden, dh den Datensatz in mehrere Knoten aufzuteilen, und jeder Knoten ist für eine Teilmenge der gesamten Daten verantwortlich.
Ich denke, es ist dasselbe wie konsistentes Hashing. Nachdem nun der Hash des Schlüssels berechnet und die Shards erhalten wurden, besteht der Nachteil des Cluster-Modus darin, dass keine Stapeloperationen von Schlüsseln durchgeführt werden können. Weil sich dieser Schlüssel möglicherweise auf verschiedenen Redis-Instanzen befindet.
Die Erkennung von Clusterfehlern wird auch jedem Redis-Knoten über Gossip mitgeteilt, und zwei Knoten pingen und pongen sich gegenseitig.
Das Löschen und Hinzufügen von Knoten erfordert eine Datenmigration.
Weitere technische Artikel zum Thema Redis finden Sie in der Spalte Einführung in das Redis-Datenbanknutzungs-Tutorial, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonIst der Redis-Sentinel-Modus ein Cluster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!