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
Warum prettier verwenden? In großen Unternehmen k...
Inhaltsverzeichnis Vorherige Wörter Anwendungssze...
Inhaltsverzeichnis Problembeschreibung Die allgem...
Das Eingabefeld zeigt beim Eingeben von Inhalten i...
Inhaltsverzeichnis 1 Redis-Konfigurationsdatei 2 ...
Wenn die erstellte Registerkartenbeschriftung den...
Warum möchte ich den Inhalt in diesem Bereich orga...
Inhaltsverzeichnis Animationsvorschau Andere UI-B...
Inhaltsverzeichnis 1. Benutzerdefinierte Anweisun...
Offizielle Website-Adresse: https://dev.mysql.com...
Vorwort Während des Entwicklungsprozesses verwend...
Lösung Fügen Sie position:relative zum übergeordn...
Inhaltsverzeichnis 1. Einführung in den V-Slot 2....
1. Einführung in mysqldump mysqldump ist ein logi...
1. Qualitative Änderungen durch CSS-Variablen Die...