Heim > Datenbank > Redis > Hauptteil

Redis-Master-Slave-Replikation

齐天大圣
Freigeben: 2020-05-25 15:17:50
Original
1369 Leute haben es durchsucht

Wie MySQL unterstützt auch Redis die Master-Slave-Replikation und die Lese-/Schreibtrennung, und die Konfiguration ist viel einfacher als bei MySQL. Werfen wir einen Blick auf die Master-Slave-Replikation von Redis.

Replikation einrichten

Standardmäßig ist Redis der Masterknoten. Lassen Sie mich nun zeigen, wie Sie die Master-Slave-Replikation aktivieren.

Öffnen Sie zunächst zwei Redis-Dienste, mit Ausnahme der unterschiedlichen gebundenen Ports und unterschiedlichen persistenten Dateien. Diese beiden Redis-Dienste haben dieselbe Konfiguration.

127.0.0.1:6379> keys *
1) "age"
2) "name"

127.0.0.1:6380> keys *
(empty list or set)
Nach dem Login kopieren

6379 Es gibt derzeit zwei Redis-Schlüssel, und 6380 ist derzeit leer. Stellen Sie eine Master-Slave-Beziehung zwischen 6379 und 6380 her, wobei 6379 der Master-Knoten und 6380 der Slave-Knoten ist.

Es gibt zwei Möglichkeiten, eine Replikation einzurichten:

  • Ändern Sie die Konfigurationsdatei von 6380, fügen Sie den Slave von 127.0.0.1 6379 zur Konfigurationsdatei hinzu und starten Sie dann den Redis-Dienst neu

  • Dynamische Änderung, geben Sie direkt den Slave von 127.0.0.1 6379 ein

127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
127.0.0.1:6380> keys *
1) "name"
2) "age"
Nach dem Login kopieren

Sie können sehen, dass die Replikation hergestellt wurde und jetzt die 6380-Daten stimmt mit 6379 überein.

Führen Sie den Info-Replikationsbefehl auf 6379 bzw. 6380 aus, um die relevanten Informationen anzuzeigen.

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
……


127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
……
Nach dem Login kopieren

Replikation trennen

Der Vorgang „Replikation trennen“ ist sehr einfach, führen Sie einfach „slaveof no one“ aus.

127.0.0.1:6380> slaveof no one
OK
Nach dem Login kopieren

Darüber hinaus können Sie den Masterknoten auch direkt wechseln. Beispielsweise ist 6380 jetzt der Slave-Knoten von 6370, und jetzt möchte 6380 die Master-Slave-Beziehung von 6379 trennen und eine neue Replikationsbeziehung mit 6381 herstellen. Dann muss 6380 nur den Slave von 127.0.0.1 6381 ausführen.

Aber Sie müssen beim Schneiden des Master-Knotens darauf achten, dass die vorherigen Daten des Slave-Knotens gelöscht werden und dann die Daten des neuen Master-Knotens kopiert werden. Wenn die vorherigen Daten nützlich sind und nicht gesichert werden, kann der Hauptvorgang daher nicht ausgeführt werden.

Passwortüberprüfung

Wenn der Masterknoten mit requirepass konfiguriert ist, muss der Slaveknoten Masterauth festlegen

Schreibgeschützt

Standardmäßig führen Slave-Knoten Lesevorgänge aus und können keine Schreibvorgänge ausführen. Da dies sehr notwendig ist, führt der Schreibvorgang des Slave-Knotens zu Dateninkonsistenzen zwischen Master- und Slave-Knoten. Wenn Sie vom Slave-Knoten schreiben möchten, ändern Sie einfach das Konfigurationselement „slave-read-only=no“.

Anwendungsszenarien

Gemeinsame Anwendungsszenarien für die Redis-Replikation umfassen

  • Echtzeitsicherung von Daten: Im Allgemeinen gibt es in diesem Fall nur einen Slave-Knoten, und der Slave-Knoten ermöglicht die Sicherung der Daten in Echtzeit.

  • Failover: Wenn der Masterknoten ausfällt, können Sie den Slaveknoten verwenden, um das System weiter auszuführen

  • Lese- und Schreibtrennung, besser geeignet In Szenarien mit vielen Lesevorgängen führt der Master-Knoten Schreibvorgänge aus und mehrere Slave-Knoten führen Lesevorgänge aus. Da die Replikation asynchron erfolgt, kann es zu Verzögerungen bei den Daten vom Slave-Knoten kommen, worauf Sie bei der Entwicklung achten müssen.

Das obige ist der detaillierte Inhalt vonRedis-Master-Slave-Replikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage