Aufgrund der Einschränkungen der Single-Point-Leistung von Redis und unserem inhärenten Bedarf an Datensicherung bietet Redis Master-Slave-Replikationsdienste. Dieser Artikel beschreibt die Erstellung eines Master-Dual-Slave-Redis-Dienstes durch Docker Compose. Konfigurationsanalyse########################################### REPLIKATION ###################################### # [Slave] Konfiguration der Verbindung zum Master # slaveof 172.25.0.101 6379 # 【Slave】Nur-Lese-Modus# Slave-Nur-Lese-Ja # 【Slave】Passwort# masterauth <Master-Passwort> # [Slave] Darf während der Replikation auf Abfragen geantwortet werden? Es können fehlerhafte Daten zurückgegeben werden. # slave-serve-stale-data yes # [Slave] Die Priorität eines Slaves, der zum Master befördert werden soll. Dies ist nur im Sentinel-Modus wirksam. # Slave-Priorität 100 # 【Slave】Die eigene IP des Slaves wird dem Master gemeldet # Slave-Announce-IP 5.5.5.5 # 【Slave】Der eigene Port des Slaves wird dem Master gemeldet# slave-announce-port 1234 # 【Slave】Das Intervall zwischen dem Pingen des Slaves an den Master# repl-ping-slave-period 10 # 【Master/Slave】Zeitüberschreitung# repl-timeout 60 # [Master] Diskless bedeutet, dass die zu kopierende RDB-Datei direkt in den Socket geschrieben wird, ohne sie vorher auf der Festplatte zu speichern. repl-diskless-sync no # [Master] Wenn Diskless aktiviert ist, wird vor der Replikation die angegebene Anzahl von Sekunden gewartet, sodass sich innerhalb des Zeitfensters mehrere Clients verbinden und parallel übertragen können. # repl-diskless-sync-delay 5 # [Master] Gibt an, ob der Nagle-Algorithmus aktiviert werden soll, der den Datenverkehr reduzieren kann, die Synchronisierung jedoch verlangsamt repl-disable-tcp-nodelay no # [Master] Die Größe des Ringpufferprotokolls, das zum erneuten Verbinden verwendet wird, nachdem der Slave getrennt wurde, um eine vollständige Replikation zu vermeiden. Der Standardwert ist 1 MB # Repl-Backlog-Größe 1 MB # 【Master】Wenn der Master alle Slaves für einen bestimmten Zeitraum trennt, löscht der Master den Rückstand # repl-backlog-ttl 3600 # [Master] Wenn die Anzahl der Slave-Verbindungen kleiner als die angegebene Zahl ist, lehnt der Master alle Schreibvorgänge ab. # min-slaves-to-write 3 # [Master] Wenn die Verzögerung größer als die angegebene Anzahl von Sekunden ist, lehnt der Master alle Schreibvorgänge ab. # min-slaves-max-lag 10 Dienstleistungsbau VerzeichnisstrukturReplikation/ ├── docker-compose.yml ├── Meister │ ├── Daten │ └── redis.conf ├── Sklave1 │ ├── Daten │ └── redis.conf └── Sklave2 ├── Daten └── redis.conf Datei erstellenZur einfachen Bedienung wird ein Subnetz definiert und die Ports 6371 (Master), 6372 und 6373 werden freigegeben. Version: "3" Netzwerke: Redis-Replikation: Treiber: Brücke ipam: Konfiguration: - Subnetz: 172.25.0.0/24 Leistungen: Master: Bild: Redis Containername: Redis-Master Häfen: - „6371:6379“ Bände: – „./master/redis.conf:/etc/redis.conf“ – „./master/data:/data“ Befehl: ["redis-server", "/etc/redis.conf"] Neustart: immer Netzwerke: Redis-Replikation: IPv4-Adresse: 172.25.0.101 Sklave1: Bild: Redis Containername: Redis-Slave-1 Häfen: - „6372:6379“ Bände: – „./slave1/redis.conf:/etc/redis.conf“ - "./slave1/data:/data" Befehl: ["redis-server", "/etc/redis.conf"] Neustart: immer Netzwerke: Redis-Replikation: IPv4-Adresse: 172.25.0.102 Sklave2: Bild: Redis Containername: Redis-Slave-2 Häfen: - „6373:6379“ Bände: – „./slave2/redis.conf:/etc/redis.conf“ - "./slave2/data:/data" Befehl: ["redis-server", "/etc/redis.conf"] Neustart: immer Netzwerke: Redis-Replikation: IPv4-Adresse: 172.25.0.103 InstanzkonfigurationMaster: Eine Konfiguration ist grundsätzlich nicht notwendig, am einfachsten ist die Angabe eines Ports. Port 6379 geschützter Modus nein repl-diskless-sync nein repl-disable-tcp-nodelay nein Sklave: Die Instanzkonfigurationen müssen lediglich konsistent bleiben, da die Subnetze definiert sind und keine Portkonflikte vorliegen. Port 6379 geschützter Modus nein Slave von 172.25.0.101 6379 Slave-Nur-Lesen ja Slave-Serve-Veraltete-Daten ja Starten des Dienstesocker-komponieren -d Erstellen des Netzwerks „replication_redis-replication“ mit dem Treiber „bridge“ Redis-Slave-1 wird erstellt … fertig Redis-Master wird erstellt ... fertig Redis-Slave-2 erstellen ... fertig Wenn Sie das Master-Protokoll überprüfen, können Sie sehen, dass die Replikationsanforderungen von zwei Slaves akzeptiert wurden:
Überprüfen Sie das Slave-Protokoll, um den gesamten Prozess der Verbindungsherstellung anzuzeigen:
prüfenMelden Sie sich beim Master an und versuchen Sie, einen neuen Schlüssel zu schreiben. 127.0.0.1:6371> Hallo Welt setzen OK Melden Sie sich beim Slave an und prüfen Sie, ob er Folgendes lesen kann: 127.0.0.1:6372> hallo bekommen "Welt" Der Slave versucht einen Schreibvorgang: 127.0.0.1:6372> Hallo Redis setzen (Fehler) NUR-LESEN. Sie können nicht auf eine schreibgeschützte Replik schreiben. Dies ist das Ende dieses Artikels über die Implementierung der Master-Slave-Replikation in der Docker Compose-Bereitstellung. Weitere relevante Inhalte zur Docker Compose 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:
|
>>: Lösung für ungültige obere Ränder von Elementen in Div-Tags
In diesem Artikel erfahren Sie, wie Sie ziehbare ...
Inhaltsverzeichnis 1. In die Grube fallen 2. Verg...
Dieser Artikel veranschaulicht anhand von Beispie...
Als ich heute die Anmeldeseite geschrieben habe, ...
Im vorherigen Artikel habe ich die Grundkenntniss...
Guten Morgen allerseits, ich habe meinen Artikel ...
Eine Reihe von Projekten für die Ausbildung reagi...
Heute habe ich eine Fallstudie zur MySQL IN-Unter...
Vorwort In vielen Verwaltungs- und Bürosystemen s...
Vorwort In diesem Artikel wird hauptsächlich besc...
Inhaltsverzeichnis 1. Wenn beim Einfügen oder Änd...
Oftmals wird nach der Fertigstellung eines Webdes...
In diesem Artikel wird der spezifische Code für d...
<br />Vorheriger Artikel: Sieben Prinzipien ...
<table id=" <%=var1%>">, der...