Ausfallzeit ist ein Computerbegriff. In der gesprochenen Sprache nennen wir eine angehaltene Maschine einfach „Ausfallzeit“, aber viele Leute nennen es „Absturz“. ist nicht standardisiert, es ist Popularität.
Ausfallzeit bezieht sich auf das Phänomen, dass sich das Betriebssystem nach einem schwerwiegenden Systemfehler nicht erholen kann oder ein Problem auf der Systemhardwareebene vorliegt, das dazu führt, dass das System für längere Zeit nicht mehr reagiert und der Computer dies tun muss neu gestartet. Dies ist ein normales Phänomen im Computerbetrieb und kann bei jedem Computer auftreten.
In einem Redis-Cluster arbeiten viele Redis zusammen, daher ist es notwendig, dass dieser Cluster nicht so einfach aufzulegen ist. Daher sollte dies theoretisch der Fall sein Wird an mindestens einen Backup-Redis-Dienst pro Knoten vergeben. Dieses Standby-Redis wird als Slave bezeichnet. (Empfohlenes Lernen: Redis-Video-Tutorial)
Das erste, was zu sagen ist, ist, dass jeder Knoten Informationen über alle Master-Knoten und Slave-Knoten des Clusters speichert. Sie bestimmen, ob der Knoten durch gegenseitiges Ping-Pong verbunden werden kann. Wenn mehr als die Hälfte der Knoten beim Pingen eines Knotens nicht antworten, geht der Cluster davon aus, dass der Knoten ausgefallen ist, und stellt dann eine Verbindung zu seinem Backup-Knoten her.
Im Master-Slave-Modus sollten Ausfallzeiten in folgende Kategorien unterteilt werden:
Slave-Slave-Redis-Ausfallzeit
Nachdem die Slave-Datenbank in Redis neu gestartet wurde, wird sie automatisch der Master-Slave-Architektur beitreten und die Datensynchronisierung automatisch abschließen.
Wenn die Slave-Datenbank Persistenz implementiert, wird eine inkrementelle Synchronisierung erreicht, solange sie erneut in den Master eingegeben wird -Slave-Architektur.
Master ist ausgefallen
Wenn weder der Master noch der Slave über Datenpersistenz verfügen, starten Sie den Dienst zu diesem Zeitpunkt nicht sofort neu, da es sonst zu Datenverlust kommen kann Der Vorgang ist wie folgt:
- Führen Sie SLAVEOF ON ONE für die Slave-Daten aus, um die Master-Slave-Beziehung zu trennen und den Slave auf die Hauptdatenbank zu aktualisieren.
- Starten Sie zu diesem Zeitpunkt die Hauptdatenbank neu , führen Sie SLAVEOF aus und legen Sie es fest. Für die Slave-Datenbank werden die Daten automatisch gesichert.
Notwendige Bedingungen, damit der Cluster in den Fehlerzustand wechselt
Wenn ein Master-Knoten und alle Slave-Knoten ausfallen, wechselt unser Cluster in den Fehlerzustand.
Wenn mehr als die Hälfte der Master im Cluster ausfällt, unabhängig davon, ob ein Slave vorhanden ist oder nicht, geht der Cluster in den Fehlerzustand über.
Wenn ein Master im Cluster ausfällt, und der aktuelle Master keinen Slave hat, geht der Cluster in den Fehlerzustand über.
Wenn die Kommunikation zwischen mehr als der Hälfte der Masterknoten und dem Masterknoten erfolgt, sind alle Master im Cluster beteiligt out (Cluster-Node-Timeout), der aktuelle Master-Knoten gilt als tot.
Die Grundlage für die Auswahl ist: normale Netzwerkverbindung –>INFO-Befehl antwortete innerhalb von 5 Sekunden –>Verbindung zum Master innerhalb von 10*Down-nach-Millisekunden –>Slave-Server-Priorität –>Kopierversatz ->Führen Sie die Version mit der kleineren ID aus. Nach der Auswahl wird der Slave-Server über den Slave zum neuen Master-Server befördert, wenn kein Ont vorhanden ist.
Verwenden Sie den Befehl „slaveof ip port“, damit andere Slave-Server den Master-Server kopieren können.
Wenn sich der alte Master schließlich wieder verbindet, wird er zum Slave-Server des neuen Masters. Beachten Sie, dass bei einer Trennung des Clients vom alten Master-Server die geschriebenen Daten nach der Wiederherstellung verloren gehen, da der alte Master die Daten des neuen Masters kopiert.
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 vonWas bedeutet Ausfallzeit in Redis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!