Redis verfügt nicht über das Konzept, Speicherorte wie MySQL zu kopieren. Wenn also der Slave und der Master getrennt und wieder verbunden werden, wird ein vollständiger Snapshot des Masters erstellt, alle Daten des Slaves werden gelöscht und das Ganze wird gelöscht Die Speichertabelle wird wiederhergestellt, was dazu führt, dass die Salve die Daten wiederherstellt. Dies ist extrem langsam und übt auch Druck auf den Master aus.
Die Master-Slave-Replikationsstrategie von Redis wird durch die persistente RDB-Datei implementiert. Der Prozess besteht darin, zuerst die RDB-Datei zu sichern und dann die gesamte RDB-Datei zu übertragen Synchronisieren Sie die ausgegebenen Vorgänge in Echtzeit mit dem Slave. Machen Sie den Slave-Server zu einer exakten Kopie des Master-Servers. Die folgenden Funktionen werden im offiziellen Dokument ReplicationHowto erwähnt: (Empfohlenes Lernen: Redis-Video-Tutorial)
Ein Master unterstützt mehrere Slaves, und der Slave kann Verbindungen von anderen Slaves akzeptieren und als dienen Master anderer Slaves. Die mehrstufige Strukturreplikationsfunktion, die so einen Master-Slave bildet, blockiert den Master-Server nicht: Auch wenn ein oder mehrere Slave-Server eine anfängliche Synchronisierung durchführen, kann der Master-Server weiterhin Befehlsanfragen verarbeiten. Die Replikationsfunktion blockiert den Slave-Server nicht: Solange die entsprechenden Einstellungen in der Datei redis.conf vorgenommen werden, kann der Server die alte Version des Datensatzes zur Verarbeitung von Befehlsanfragen verwenden, auch wenn der Slave-Server eine anfängliche Synchronisierung durchläuft . Allerdings werden Verbindungsanfragen blockiert, während die alte Version des Datensatzes vom Server entfernt und die neue Version des Datensatzes geladen wird. Die Replikation dient der Skalierbarkeit. Beispielsweise können zeitaufwändige Befehle (z. B. Sortieren) an bestimmte Slaves gesendet werden, um eine Blockierung durch den Master zu vermeiden . führt der Slave-Server den Persistenzvorgang aus, der lediglich das Auskommentieren der Speicheranweisung in der Konfigurationsdatei des Masters erfordert.
Redis verwendet asynchrone Replikation.
Die Master-Slave-Replikation von Redis ist in zwei Phasen unterteilt:
1) Synchronisierungsvorgang: Aktualisieren Sie den Datenbankstatus des Slave-Servers auf den aktuellen Datenbankstatus des Master-Server.
2) Befehlsweitergabe: Wenn der Datenbankstatus des Master-Servers geändert wird, was dazu führt, dass der Datenbankstatus der Master- und Slave-Server inkonsistent ist, werden die Master- und Slave-Server in einen konsistenten Zustand zurückversetzt.
Synchronisation
Wenn der Client den SLAVEOF-Befehl an den Slave-Server sendet und vom Slave-Server verlangt, den Master-Server zu kopieren, muss der Slave-Server zunächst eine Synchronisierung durchführen Vorgang, d. h. der Datenbankstatus des Slave-Servers wird auf den aktuellen Datenbankstatus des Master-Servers aktualisiert.
Der Synchronisierungsvorgang des Slave-Servers mit dem Master-Server muss durch Senden des SYNC-Befehls an den Master-Server abgeschlossen werden. Im Folgenden sind die Ausführungsschritte des SYNC-Befehls aufgeführt:
Slave-Server Senden Sie einen SYNC-Befehl an den Master-Server. Der Master-Server, der den SYNC-Befehl empfängt, führt den BGSAVE-Befehl aus, generiert im Hintergrund eine RDB-Datei und verwendet einen Puffer, um alle von nun an ausgeführten Schreibbefehle aufzuzeichnen. Wenn der BGSAVE-Befehl des Master-Servers ausgeführt wird, sendet der Master-Server die durch den BGSAVE-Befehl generierte RDB-Datei an den Slave-Server. Der Slave-Server empfängt und lädt die RDB-Datei und aktualisiert seinen eigenen Datenbankstatus auf den Datenbankstatus, wenn der Der Masterserver hat den BGSAVE-Befehl ausgeführt. Der Master-Server sendet alle im Puffer aufgezeichneten Schreibbefehle an den Slave-Server. Der Slave-Server führt diese Schreibbefehle aus und aktualisiert seinen eigenen Datenbankstatus auf den aktuellen Status der Master-Server-Datenbank.
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 vonSo synchronisieren Sie Redis-Clusterdaten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!