Detaillierte Erläuterung der Redis-Master-Slave-Replikationspraxis mit Docker

Detaillierte Erläuterung der Redis-Master-Slave-Replikationspraxis mit Docker

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

  • Docker installieren
  • Hauptdienstkonfiguration
  • Aus der Servicekonfiguration
  • Überprüfen des Synchronisationseffekts

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
Schlüssel *

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:
  • Implementierung eines Redis Master-Slave-Clusters basierend auf Docker
  • So verwenden Sie Docker zum Erstellen eines Redis-Master-Slaves
  • Verwenden Sie Docker, um einen Redis-Master-Slave-Replikationscluster zu erstellen
  • CentOS 6 verwendet Docker, um ein Beispiel für den Betrieb einer Redis-Master-Slave-Datenbank bereitzustellen
  • Detaillierte Erläuterung des Master-Slave-Konfigurationstutorials von Redis unter Docker
  • Beispielpraxis zum Erstellen von Redis Master-Slave + Sentinel basierend auf Docker

<<:  Detaillierte Erläuterung der MySQL-Transaktionsisolationsebene und des MVCC

>>:  Verbesserung der Aktualisierungsfunktion für Zen-Codierungsressourcen

Artikel empfehlen

Detaillierte Erklärung des Skript-Debugging-Mechanismus in Bash

Ausführen des Skripts im Debugmodus Sie können da...

Beispielcode zum Ändern des Textstils der Eingabeaufforderung in HTML

Auf vielen Websites wird im Eingabefeld Hinweiste...

Detaillierter Prozess der Vue-Front-End-Verpackung

Inhaltsverzeichnis 1. Verpackungsbefehl hinzufüge...

Einführung in die Verwendung gängiger Dockerfile-Befehle

Inhaltsverzeichnis 01 CMD 02 EINSTIEGSPUNKT 03 AR...

Webdesign-Tutorial (8): Webseitenhierarchie und Raumgestaltung

<br />Vorheriger Artikel: Webdesign-Tutorial...

Lösung für das Problem des MySQL-Datenverzögerungssprungs

Heute haben wir ein weiteres typisches Problem im...

So zeigen Sie den Status von Remote-Serverdateien in Linux an

Wie unten dargestellt: Der Testbefehl stellt fest...

Detaillierte Erklärung des MySQL-Covering-Index

Konzept Wenn der Index alle Daten enthält, die di...

Detaillierte Erläuterung der logischen Architektur von MySQL

1. Gesamtarchitekturdiagramm Im Vergleich zu ande...

Quellcode der HTML-Einstellungen für die Benutzerregistrierungsseite

Gestalten Sie die oben gezeigte Webseite: <!DOC...