Heim  >  Artikel  >  Datenbank  >  Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

coldplay.xixi
coldplay.xixinach vorne
2021-01-26 09:45:332114Durchsuche

Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Empfohlen (kostenlos): redis

Artikelverzeichnis

  • Master-Slave-Replikation
    • Befehl
    • Konfiguration
  • Replikationsprinzip
    • Vollständige Kopie
    • Volume-Replikation hinzugefügt
    • Master-Slave-Replikation
    bezieht sich auf eins Die Daten des Redis-Servers werden auf andere Redis-Server kopiert. Der erste wird als Slave-Knoten bezeichnet. Er kann im Allgemeinen nur in eine Richtung kopiert werden Der Master führt hauptsächlich Schreibvorgänge aus, und der Slave führt hauptsächlich Lesevorgänge aus, um eine Trennung von Lesen und Schreiben zu erreichen.
  • Funktion
    • Datenredundanz: Die Master-Slave-Replikation implementiert eine Hot-Sicherung von Daten, die zusätzlich zur Persistenz eine Datenredundanzmethode darstellt.
    • Fehlerbehebung: Wenn auf dem Master-Knoten ein Problem auftritt, kann der Slave-Knoten Dienste bereitstellen, um eine schnelle Fehlerbeseitigung zu erreichen.
    Lastausgleich: Basierend auf der Master-Slave-Replikation in Kombination mit der Lese-Schreib-Trennung kann der Master-Knoten Schreibdienste und die Slave-Knoten Lesedienste bereitstellen (d. h. beim Schreiben von Redis-Daten stellt die Anwendung eine Verbindung zum Master-Knoten her Beim Lesen von Redis-Daten stellt die Anwendung eine Verbindung zum Slave-Knoten her, um die Serverlast zu teilen. Insbesondere in Szenarien, in denen weniger geschrieben und mehr gelesen wird, kann die gemeinsame Nutzung der Leselast durch mehrere Slave-Knoten die Parallelität erheblich erhöhen Redis-Server.
Eckpfeiler der Hochverfügbarkeit: Zusätzlich zu den oben genannten Funktionen ist die Master-Slave-Replikation auch die Grundlage für die Implementierung von Sentinels und Clustern. Daher ist die Master-Slave-Replikation die Grundlage der Redis-Hochverfügbarkeit.


Befehl

Befehl

Funktion
  1. Slaveof
  2. Host-Port
  3. Konvertieren Sie den aktuellen Server in einen Slave-Server des angegebenen Servers. Wenn es bereits ein Slave ist, beendet es die Synchronisierung des alten Master-Servers, verwirft den alten Datensatz und beginnt mit der Synchronisierung des neuen Master-Servers. „SLAVEOF NO ONE“ führt dazu, dass der Slave-Server die Replikationsfunktion abschaltet und vom Slave-Server zurück zum Master-Server wechselt. Der ursprünglich synchronisierte Datensatz wird nicht verworfen. Der Befehl

info

[section]section

Konfiguration

Nehmen Sie als Beispiel eine einzelne Maschine mit mehreren Diensten (normalerweise mehrere Maschinen mit mehreren Diensten, aber ich habe nur einen Server)

Zunächst einmal ist jeder Redis-Client standardmäßig der Host, der sein kann über den Info-Replikationsbefehl angezeigt.
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Jetzt müssen wir also drei Clients gleichzeitig öffnen, um einen Master und zwei Slaves zu simulieren, also müssen wir die Konfiguration ändern:

  1. Die Portnummer ändern
  2. Den PID-Namen ändern
  3. Das Protokoll ändern Name
  4. Ändern Sie den RDB-Namen
  5. Einstellungen Host-Verbindung (optional, verwenden Sie die Befehlszeile)

Kopieren Sie zunächst zwei Konfigurationsdateien als Slave-Konfiguration. Der Host kann die Standardeinstellung verwenden.
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Nehmen Sie redis80.conf als Beispiel, um die oben genannten fünf Konfigurationspunkte nacheinander zu ändern. Für 81 werden nur die ersten vier Punkte geändert.
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Dann starten Sie sie (79, 80, 81)
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Setzen Sie Master und Slave:

  1. 80 ist in der Konfigurationsdatei (dauerhaft) OK eingestellt, direkt:
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
  2. 81 hat keine Konfiguration, Sie können es manuell in der Befehlszeile festlegen
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Zu diesem Zeitpunkt 79 (Master) anzeigen:
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Kopierprinzip


Vollständig kopieren

Alle Sobald der Slave eine Verbindung zum Master herstellt, werden alle Daten vom Host auf den Slave kopiert. Vollständige Kopie.

Inkrementelle Replikation

Nachdem der Slave mit dem Master verbunden ist, werden die später vom Master aktualisierten Daten nur für diesen Teil der Daten synchron auf dem Slave aktualisiert.

Test

  1. Der Slave ist standardmäßig schreibgeschützt und kopiert inkrementell die Daten des synchronisierten Masters:
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
  2. Der Host ist ausgefallen:
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    3. Aus der Ausfallsituation:
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
    Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Verschachtelter Master-Slave


Wie in Abbildung 79 gezeigt, ist es der Host von 80, und 80 ist der Host von 81. Dies ist eine verschachtelte Master-Slave-Beziehung.
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Sentinel-Modus


Die oben genannten 80 oberen und verschachtelten Master-Slaves werden alle von uns manuell über die Befehlszeile eingegeben. Der Zweck besteht darin, zu vermeiden der Host. Maschine Der Fensterzeitraum für Post-Write-Vorgänge erfordert einen manuellen Eingriff.
Sentinel wird unabhängig als unabhängiger Prozess ausgeführt. Das Prinzip besteht darin, dass Sentinel mehrere laufende Redis-Server überwacht, indem es Befehle sendet und auf die Antwort des Redis-Servers wartet. Wenn Sentinel erkennt, dass der Host offline ist, wählt es einen Slave-Computer aus, der als neuer Host „hochgefahren“ wird (automatische Fehlermigration). Wenn der ursprüngliche Host online geht, wird der ursprüngliche Host zum Slave des neuen Hosts. Das Prinzip besteht darin, andere Server über das Veröffentlichungs- und Abonnementmodell zu benachrichtigen, die Konfigurationsdatei zu ändern und dadurch den Host zu wechseln.

Redis erklärt die Master-Slave-Replikation und den Sentry-Modus Was tun, wenn Sentinel ausfällt? Zur gegenseitigen Überwachung können mehrere Sentinels eingesetzt werden.

Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Bilder stammen von https://www.jianshu.com/p/06ab9daf921d.

  • Subjectively Down (SDOWN) bezieht sich auf die Ausfallzeit einer einzelnen Sentinel-Instanz auf der Serverleitung Urteil.
  • Objective Down
  • (Objectively Down, als ODOWN bezeichnet) bezieht sich auf mehrere Sentinel-Instanzen, die subjektive Offline-Beurteilungen auf demselben Server vornehmen und über den Befehl SENTINEL is-master-down-by-addr miteinander kommunizieren. Das Ergebnis ist dass der Server offline ist.
  • Wenn der Host objektiv offline geht, stimmt Sentinel für einen neuen Host (
Der spezifische Algorithmus wird weggelassen

), führt ein automatisches Failover (Failover) durch und benachrichtigt andere Server über Veröffentlichung und Abonnement, um den Host zu wechseln.

Konfigurieren Sie den Sentinel

Zuerst gibt es eine detaillierte kommentierte Sentinel-Konfiguration im Installationsverzeichnis:


Erstellen Sie eine neue sentinel.conf, um 6379 zu überwachen, und der Rest kann standardmäßig eingestellt werden: Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Starten Sie den Sentinel: Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus

Test

Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Redis erklärt die Master-Slave-Replikation und den Sentry-Modus
Öffnen Sie verschiedene Portkonfigurationsdateien mehrere Sentinel-Clients und folgen dann demselben Muster ( Redis erklärt die Master-Slave-Replikation und den Sentry-Modusfaul
)

INFO gibt verschiedene Informationen und statistische Werte über den Redis-Server in einem leicht verständlichen und lesbaren Format zurück. Durch Angabe des optionalen Parameters können Sie dafür sorgen, dass der Befehl nur einen bestimmten Teil der Informationen zurückgibt:

Das obige ist der detaillierte Inhalt vonRedis erklärt die Master-Slave-Replikation und den Sentry-Modus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Redis-SchlüsselpunktanalyseNächster Artikel:Redis-Schlüsselpunktanalyse