1. Hintergrund Ich arbeite derzeit an einem Zero-Trust-Sicherheitsgateway und muss Redis als Authentifizierungscacheserver verwenden. Da die Gatewayserver auf mehrere Cluster verteilt sind, ist die computerraumübergreifende Authentifizierung nicht jedes Mal einfach umzusetzen. Daher muss ich die Redis-Master-Slave-Synchronisierung verwenden und den Vorgang aufzeichnen. Ich hoffe, dies kann bedürftigen Studierenden als Referenz dienen. 2. Bedienungsschritte
3. Docker installieren In diesem Artikel geht es hauptsächlich um den Prozess der Aufzeichnung der Master-Slave-Konfiguration. Daher verwende ich die einfachste Docker-Methode zum Erstellen des Redis-Dienstes. Der Befehl zum Installieren von Docker lautet wie folgt curl -sSL https://get.daocloud.io/docker | sh Nachdem der Befehl ausgeführt wurde, sehen Sie die in der folgenden Abbildung dargestellte Schnittstelle Im obigen Bild sehen Sie einige relevante Informationen zu Docker. Um zu bestätigen, ob Docker erfolgreich installiert wurde, können Sie auch den Befehl „Docker Info“ verwenden. Der Ausführungsbefehl lautet wie folgt Docker-Informationen Nachdem der Befehl ausgeführt wurde, werden die in der folgenden Abbildung dargestellten Informationen zurückgegeben. Im obigen Bild können Sie sehen, dass die Versionsinformationen von Docker 20.10.3 lauten, was derzeit die neueste Version ist. Es wurde bestätigt, dass die Installation erfolgreich war. 4. Hauptdienstkonfiguration Als nächstes muss ich Docker verwenden, um den Redis-Dienst zu installieren. In der Praxis stellte ich fest, dass die direkte Verwendung des Redis-Images etwas ungewöhnlich war, also verwendete ich das Centos-Image und installierte Redis im Container. Der Befehl zum Ausführen des Containers lautet wie folgt docker run -d -it -p 16379:6379 --name redis_master centos:7 Nachdem der Befehl ausgeführt wurde, geben Sie den Container ein. Der Befehl zum Eingeben des Containers lautet wie folgt docker exec -it redis_master bash Nachdem der Befehl ausgeführt wurde, werden die in der folgenden Abbildung dargestellten Informationen zurückgegeben. Im obigen Bild sehen Sie, dass Sie den Container erfolgreich betreten haben. Als nächstes muss ich Redis im Container installieren. Der Befehl zum Installieren von Redis lautet wie folgt yum install -y epel-release und yum install -y redis Nachdem der Befehl ausgeführt wurde, werden die in der folgenden Abbildung dargestellten Informationen zurückgegeben. Wie Sie der obigen Abbildung entnehmen können, wurde Redis installiert. Als Nächstes müssen Sie eine neue Konfigurationsdatei für die Redis-Masterbibliothek erstellen. Der Ausführungsbefehl lautet wie folgt vi ~/master.conf Die Konfigurationsdatei lautet wie folgt. Kopieren Sie die folgende Konfigurationsdatei und fügen Sie sie in das vi-Bearbeitungsfenster ein. #binden 0.0.0.0 geschützter Modus ja Port 6379 TCP-Rückstand 511 unixsocket /tmp/redis_auth.sock unixsocketperm 777 Zeitüberschreitung 0 TCP-Keepalive 300 dämonisieren ja überwachtes Auto pid-Datei /var/run/redis_auth.pid Loglevel-Debug Protokolldatei /tmp/redis_auth.log Datenbanken 16 speichern "" Schreibvorgänge bei BGSave-Fehler stoppen, ja RDB-Komprimierung: ja RDB-Prüfsumme ja Datenbankdateiname dump.rdb dir /var/lib/redis erforderlichpass 123123123 Slave-Serve-Veraltete-Daten ja Slave-Nur-Lesen ja repl-diskless-sync nein repl-festplattenlose-Synchronisierungsverzögerung 5 repl-disable-tcp-nodelay nein Slave-Priorität 100 nur anhängen ja Dateiname anhängen "funfe.aof" appendfsync jede Sekunde kein-appendfsync-on-rewrite nein automatischer Aof-Umschreibprozentsatz 100 Auto-Aof-Rewrite – Mindestgröße 512 MB aof-load-truncated ja Lua-Zeitlimit 5000 slowlog-log-langsamer-als-10000 slowlog-max-len 128 Latenz-Monitor-Schwellenwert 0 Benachrichtigung über Keyspace-Ereignisse "" Hash-Max-Ziplist-Einträge 512 Hash-Max-Ziplist-Wert 64 Liste-max-Ziplist-Größe -2 Listenkomprimierungstiefe 0 set-max-intset-einträge 512 zset-max-ziplist-einträge 128 zset-max-ziplist-wert 64 hll-sparse-max-bytes 3000 aktives Aufwärmen ja Hz 10 aof-rewrite-inkrementell-fsync ja Nach dem Einfügen in das vi-Bearbeitungsfenster sieht es wie folgt aus Nach dem Einfügen und Überprüfen speichern Sie mit dem Befehl :wq! und starten anschließend das Redis-Programm. Der Startbefehl lautet wie folgt redis-server `/redis.conf Im obigen Startbefehl müssen Sie den Pfad der Konfigurationsdatei angeben, wie in der folgenden Abbildung dargestellt In der obigen Abbildung sehen Sie, dass der Redis-Dienst gestartet wurde. 5. Aus der Servicekonfiguration Als nächstes muss ich wieder einen Redis-Slave-Server starten. Der Befehl zum Ausführen des Containers lautet wie folgt docker run -d -it -p 26379:6379 --name redis_slave centos:7 Da sich der obige Befehl auf demselben Host befindet, habe ich den Host-Port auf 26379 gesetzt, um Konflikte mit dem Master-Bibliotheks-Port zu vermeiden. Nach Abschluss des Startvorgangs können Sie den Slave-Bibliothekscontainer aufrufen. Der auszuführende Befehl lautet wie folgt Docker exec -it redis_slave bash Nachdem der Befehl ausgeführt wurde, müssen Sie auch eine neue Redis-Konfigurationsdatei erstellen. Der auszuführende Befehl lautet wie folgt vi ~/redis.conf In der Konfigurationsdatei müssen Sie den Konfigurationscode der Slave-Bibliothek hinzufügen. Das Konfigurationsbeispiel lautet wie folgt binden 127.0.0.1 geschützter Modus ja Port 6379 TCP-Rückstand 511 unixsocket /tmp/redis_auth.sock unixsocketperm 777 Zeitüberschreitung 0 TCP-Keepalive 300 dämonisieren ja überwachtes Auto pid-Datei /var/run/redis_6379.pid Loglevel-Hinweis Protokolldatei /tmp/redis.log Datenbanken 16 speichern "" Schreibvorgänge bei BGSave-Fehler stoppen, ja RDB-Komprimierung: ja RDB-Prüfsumme ja Datenbankdateiname dump.rdb dir /var/lib/redis Sklave von 172.23.193.148 16379 Masterauth 123123123 Slave-Serve-Veraltete-Daten ja Slave-Nur-Lesen ja repl-diskless-sync nein repl-festplattenlose-Synchronisierungsverzögerung 5 repl-disable-tcp-nodelay nein Slave-Priorität 100 nur anhängen ja Dateiname anhängen "funfe.aof" appendfsync jede Sekunde kein-appendfsync-on-rewrite nein automatischer Aof-Umschreibprozentsatz 100 Auto-Aof-Rewrite – Mindestgröße 512 MB aof-load-truncated ja Lua-Zeitlimit 5000 slowlog-log-langsamer-als-10000 slowlog-max-len 128 Latenz-Monitor-Schwellenwert 0 Benachrichtigung über Keyspace-Ereignisse "" Hash-Max-Ziplist-Einträge 512 Hash-Max-Ziplist-Wert 64 Liste-max-Ziplist-Größe -2 Listenkomprimierungstiefe 0 set-max-intset-einträge 512 zset-max-ziplist-einträge 128 zset-max-ziplist-wert 64 hll-sparse-max-bytes 3000 aktives Aufwärmen ja Hz 10 aof-rewrite-inkrementell-fsync ja Nach dem Kopieren des Konfigurationsbeispiels sieht das Fenster folgendermaßen aus: Nach dem Einfügen und Überprüfen speichern Sie mit dem Befehl :wq! und starten dann das Redis-Programm. Der Startbefehl lautet wie folgt. Installieren Sie dann den Redis-Dienst. Der Installationsbefehl lautet wie folgt yum install -y epel-release und yum install -y redis Nachdem der Befehl ausgeführt wurde, werden die in der folgenden Abbildung dargestellten Informationen zurückgegeben. In der obigen Abbildung können Sie sehen, dass auch das Redis der Slave-Bibliothek installiert wurde. Verwenden Sie als Nächstes den Befehl redis-server, um den Slave-Bibliotheksserver zu starten. Der Befehl ist in der folgenden Abbildung dargestellt redis-server redis.conf Nachdem der Befehl ausgeführt wurde, werden die in der folgenden Abbildung dargestellten Informationen zurückgegeben. Im obigen Bild sehen Sie, dass Redis gestartet wurde. Als Nächstes können Sie den Effekt überprüfen. 6. Ergebnisüberprüfung Die Überprüfungsmethode besteht hauptsächlich darin, Daten in der Masterdatenbank festzulegen und zu beobachten, ob die Slavedatenbank ebenfalls synchron aktualisiert wird. 6.1 Vorläufige Überprüfung Dieser Vorgang ist jedoch etwas mühsam. Wir sollten zuerst das Startprotokoll der Slave-Bibliothek überprüfen. Der Befehl zum Überprüfen des Startprotokolls lautet wie folgt cat /tmp/redis.log Nachdem der Befehl ausgeführt wurde, werden Redis-Protokollinformationen zurückgegeben, wie in der folgenden Abbildung dargestellt Aus den Protokollinformationen in der obigen Abbildung können Sie ersehen, dass die Slave-Bibliothek die Informationen der Master-Bibliothek erfolgreich auf die lokale Bibliothek kopiert hat. 6.2 Synchronisierungsprüfung Obwohl das Protokoll einen Erfolg anzeigt, hängt es immer noch vom tatsächlichen Effekt ab, ob die Master-Slave-Synchronisierung erfolgreich ist. Hier kehre ich zum Terminalfenster des Masterservers zurück und rufe die Redis-Befehlskonsole auf. Der Befehl zum Aufrufen der Konsole lautet wie folgt redis-cli -a 123123123 Nachdem der Befehl ausgeführt wurde, können Sie Redis-Befehlsoperationen ausführen. Hier habe ich ein Schlüssel-Wert-Testpaar als 123123 festgelegt. Der Einstellungsbefehl lautet wie folgt Testsatz 123123 Nachdem der Befehl ausgeführt wurde, werden die in der folgenden Abbildung dargestellten Informationen zurückgegeben. In der obigen Abbildung können Sie sehen, dass Redis Sie darauf hingewiesen hat, dass das Schlüssel-Wert-Paar erfolgreich festgelegt wurde. Als Nächstes gehe ich zurück zum Terminalfenster der Slave-Bibliothek, öffne die Redis-Konsole und führe den Befehl wie folgt aus redis-cli -a 123123123 Nachdem der Befehl ausgeführt wurde, können Sie die Schlüssel-Wert-Paare der aktuellen Slave-Bibliothek über den Befehl keys anzeigen. Der Befehl lautet wie folgt Nachdem der Befehl ausgeführt wurde, werden die in der folgenden Abbildung dargestellten Informationen zurückgegeben. In der Abbildung oben sehen Sie, dass die Testdaten erfolgreich kopiert wurden. Dies ist das Ende dieses Artikels über die Verwendung von Docker für die Redis-Master-Slave-Replikation. Weitere Informationen zur Docker-Redis-Master-Slave-Replikation finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der MySQL-Transaktionsisolationsebene und des MVCC
>>: Verbesserung der Aktualisierungsfunktion für Zen-Codierungsressourcen
Ausführen des Skripts im Debugmodus Sie können da...
Heute werde ich über einen CSS-Spezialeffekt spre...
Auf vielen Websites wird im Eingabefeld Hinweiste...
Inhaltsverzeichnis 1. Verpackungsbefehl hinzufüge...
Inhaltsverzeichnis 01 CMD 02 EINSTIEGSPUNKT 03 AR...
Die MyISAM- und InnoDB-Engines von MySQL verwende...
Vorwort Die Anwendungs- und Lernumgebung von MySQ...
<br />Vorheriger Artikel: Webdesign-Tutorial...
Inhaltsverzeichnis Frage Lösung Frage Es scheint ...
Heute haben wir ein weiteres typisches Problem im...
Wie unten dargestellt: Der Testbefehl stellt fest...
Konzept Wenn der Index alle Daten enthält, die di...
CentOS8 wurde vor ein paar Tagen veröffentlicht. ...
1. Gesamtarchitekturdiagramm Im Vergleich zu ande...
Gestalten Sie die oben gezeigte Webseite: <!DOC...