Dieser Artikel befasst sich mit der Master-Slave-Replikation in redis und stellt die spezifische Verwendung, Vorsichtsmaßnahmen und den Sentinel-Modus vor. Ich hoffe, dass er für alle hilfreich ist!
Die Redis-Master-Slave-Replikation ist derzeit die am häufigsten verwendete Lese-/Schreib-Trennmethode. Ein Master ist für Schreibvorgänge verantwortlich und löst hauptsächlich die Probleme. Ziel ist es, den Druck des Redis-Lesens zu teilen und die Effizienz des Lesens und Schreibens von Daten zu verbessern. [Verwandte Empfehlungen:
Redis-Video-TutorialZwei: Spezifische Verwendung
Host ist die Verbindungsadresse, Port ist die Portnummer der Verbindung Adresse, natürlich können Sie sie auch selbst kopieren. Mehrere redis.conf-Dateien können mehrere Redis-Dienste verschiedener Ports starten, indem sie ihre Portnummer, Thread-Nummer und andere Informationen ändern
SLAVEOF [host] [port]
2. Die Hauptbibliothek ist für das Schreiben zuständig (Lesen ist ebenfalls möglich), die Slave-Bibliothek kann nur lesen: SLAVEOF [host] [port]
2.主库负责写(读也可以),从库只能读:
主库中写的数据能在从库中获取:6381为主库,6380为从库
3.使从库重新成为主库:
SLAVEOF no one
(1)一般情况下,主库掉线后,从库会等待主库重新连线,依旧保持从库状态
(2)从库掉线后,需重新连上主库,才能作为从库,否则则为主库
概述:为了当主库服务掉线后,使其他从库能重新选取一个主库继续服务运转
作用:当主库服务掉线之后,哨兵会监听到主库掉线,并进行投票操作使其中一个从库成为主库替代原主库运行。
1、在redis服务启动的目录下创建一个 sentinel.conf
文件,vim编辑此配置文件
` sentinel monitor host6379 127.0.0.1 6381 1 `
2、通过 redis-sentinel 【文件目录】/sentinel.conf
连接建立-->数据同步-->命令持续传播 在从节点执行 slaveof 命令后,复制过程便开始运作,下面图示大概可以看到,\
SLAVEOF no one
< h2 data-id="heading-2">Drei: Vorsichtsmaßnahmen:
(1) Unter normalen Umständen wartet die Slave-Datenbank, nachdem die Master-Datenbank offline geschaltet wurde, auf die erneute Verbindung der Master-Datenbank und behält weiterhin den Status der Slave-Datenbank bei
(2) Nachdem die Slave-Datenbank offline gegangen ist, muss sie erneut eine Verbindung zur Master-Datenbank herstellen, um als Slave-Bibliothek zu funktionieren, andernfalls ist sie die Master-BibliothekÜbersicht: Damit andere Slave-Bibliotheken erneut eine Master-Bibliothek auswählen können, um fortzufahren, wenn der Hauptbibliotheksdienst offline ist. DienstbetriebViertens: Sentinel Modus
Funktion: Wenn der Hauptdatenbankdienst offline geht, überwacht der Wachposten, dass der Hauptbibliotheksdienst offline ist Die Datenbank ist offline und führt einen Abstimmungsvorgang durch, um eine der Slave-Datenbanken zur Hauptdatenbank zu machen und die ursprüngliche Hauptdatenbank zu ersetzen.
1. Erstellen Sie eine sentinel.conf
-Datei in dem Verzeichnis, in dem der Redis-Dienst gestartet wird, und bearbeiten Sie diese Konfigurationsdatei mit vim
# Error condition on socket for SYNC: {socket_error_reason}
2 über redis-sentinel [Dateiverzeichnis ]/sentinel.conf
Sentinel starten
Hinweis: Wenn die ursprüngliche Hauptbibliothek im Sentinel-Modus erneut verbunden wird, fügt Sentinel seine Operationen der neuen Hauptbibliothek hinzu, d. h., es existiert als Slave-Bibliothek neue Hauptbibliothek.
Fünf: Prinzip:rrreee
Aus dem Bild ist ersichtlich, dass der Replikationsprozess grob in 6 Prozesse unterteilt istDie Protokollaufzeichnungen nach der Master-Slave-Konfiguration können diesen Prozess ebenfalls sehen
1 ) Speichern Sie die Informationen zum Masterknoten (Master).
Nach der Ausführung von Slaveof druckt Redis das folgende Protokoll:
2) Der Slave-Knoten (Slave) verwaltet die replikationsbezogene Logik durch geplante Aufgaben, die jede Sekunde ausgeführt werden, wenn die geplante Aufgabe erkennt, dass es einen neuen Master-Knoten gibt , wird versucht, mit dem neuen Master-Knoten zu kommunizieren. Der Slave-Knoten stellt eine Netzwerkverbindung mit dem Master-Knoten her. Der Slave-Knoten stellt einen Socket her mit Port 51234, der speziell zum Empfangen von Nachrichten verwendet wird, die vom Masterknoten gesendet werden. Kopieren Sie den Befehl. Nachdem der Slave-Knoten erfolgreich verbunden wurde, wird das folgende Protokoll gedruckt:
Wenn der Slave-Knoten keine Verbindung herstellen kann, wird die geplante Aufgabe auf unbestimmte Zeit wiederholt, bis die Verbindung erfolgreich ist oder „slaveof noone“ ausgeführt wird, um die Replikation abzubrechen. Bei Verbindungsfehlern können Sie eine Informationsreplikation auf dem Slave-Knoten ausführen, um den Indikator „master_link_down_since_seconds“ anzuzeigen, der die Systemzeit aufzeichnet, als die Verbindung zum Master-Knoten fehlschlug. Wenn der Slave-Knoten keine Verbindung zum Master-Knoten herstellen kann, wird jede Sekunde das folgende Protokoll gedruckt, um die Problemerkennung zu erleichtern:
rrreee3) Senden Sie den Ping-Befehl. Nachdem die Verbindung erfolgreich hergestellt wurde, sendet der Slave-Knoten eine Ping-Anfrage für die erste Kommunikation. Der Hauptzweck der Ping-Anfrage ist wie folgt:
·Ermitteln Sie, ob der Netzwerk-Socket zwischen Master und Slave verfügbar ist. 🎜·Erkennen Sie, ob der Masterknoten derzeit Verarbeitungsbefehle annehmen kann. 🎜Wenn der Slave-Knoten nach dem Senden des Ping-Befehls die Pong-Antwort vom Master-Knoten nicht empfängt oder eine Zeitüberschreitung auftritt, z. B. wenn das Netzwerk eine Zeitüberschreitung erfährt oder der Master-Knoten blockiert ist und nicht auf den Befehl antworten kann, trennt der Slave-Knoten die Verbindung Replikationsverbindung hergestellt und die nächste geplante Aufgabe initiiert eine erneute Verbindung. 🎜🎜🎜🎜🎜🎜🎜🎜Der vom Knoten gesendete Ping-Befehl wird erfolgreich zurückgegeben, Redis druckt das folgende Protokoll und setzt den nachfolgenden Replikationsprozess fort: 🎜🎜🎜🎜4) Berechtigungsüberprüfung. Wenn der Parameter „requirepass“ auf dem Master-Knoten festgelegt ist, ist eine Kennwortüberprüfung erforderlich. Der Slave-Knoten muss den Parameter „masterauth“ konfigurieren, um sicherzustellen, dass das Kennwort mit dem des Master-Knotens übereinstimmt, damit die Überprüfung fehlschlägt beendet und der Slave-Knoten startet den Replikationsprozess erneut.
5) Datensätze synchronisieren. Nachdem die Master-Slave-Replikationsverbindung normal kommuniziert hat, sendet der Master-Knoten beim ersten Aufbau der Replikation alle Daten, die er enthält, an den Slave-Knoten. Dieser Teil des Vorgangs ist der längste Schritt.
6) Befehl zum kontinuierlichen Kopieren. Wenn der Master-Knoten die aktuellen Daten mit dem Slave-Knoten synchronisiert, ist der Replikationseinrichtungsprozess abgeschlossen. Als nächstes sendet der Master-Knoten kontinuierlich Schreibbefehle an die Slave-Knoten, um die Konsistenz der Master-Slave-Daten sicherzustellen.
Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !
Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Master-Slave-Replikation in Redis sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!