1. Ziehen Sie das Redis-Image 2. Starten Sie drei Redis-Containerdienste und verwenden Sie die Ports 6379, 6380 und 6381. docker run --name redis-6379 -p 6379:6379 -d redis docker run --name redis-6380 -p 6380:6379 -d redis docker run --name redis-6381 -p 6381:6379 -dredis 3. Container ansehen [tcy@tcy1 ~]$ docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN a9fa77adc598 daocloud.io/library/redis "docker-entrypoint.s vor 2 Stunden Up 2 Stunden 0.0.0.0:6381->6379/tcp redis-6381 6ee2f2f007e6 daocloud.io/library/redis "docker-entrypoint.s vor 2 Stunden Up 2 Stunden 0.0.0.0:6380->6379/tcp redis-6380 ab54741166e1 daocloud.io/library/redis "docker-entrypoint.s vor 3 Stunden Aktiv 3 Stunden 0.0.0.0:6379->6379/tcp redis-6379 4. Testcontainer, Erfolg docker exec -it ab54741166e1 redis-cli: Geben Sie den Container ein [root@tcy1 tcy]# docker exec -it ab54741166e1 redis-cli 127.0.0.1:6379> setze b tcy OK 127.0.0.1:6379> Holen Sie sich b "tcy" 127.0.0.1:6379> beenden[root@tcy1 tcy]# 5. Starten Sie die Redis-Clusterkonfiguration 5.1. Überprüfen Sie die IP-Adresse des Container-Intranets Die Intranet-IP-Adressen der drei Redis sind: redis-6379: 172.17.0.1:6379 redis-6380: 172.17.0.2:6379 redis-6381:172.17.0.3:6379 5.2. Rufen Sie den Docker-Container auf und überprüfen Sie die aktuelle Redis-Rolle (Master oder Slave). [root@tcy1 tcy]# docker exec -it ab54741166e1 /bin/bash root@ab54741166e1:/Daten# redis-cli 127.0.0.1:6379> Info-Replikation # Replikation Rolle: Meister verbundene_Slaves:0 master_replid:d43d1ae8cde6cb084220e18b926aba79e0bb2504 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 zweiter_Repl_Offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 127.0.0.1:6379> beenden root@ab54741166e1:/data# beenden Ausfahrt Derzeit befinden sich alle drei im Master-Zustand 5.3. Verwenden Sie den Befehl redis-cli, um den Host von redis-6380 und redis-6381 auf 172.17.0.1:6379 zu ändern [root@tcy1 tcy]# docker exec -it a9fa77adc598 /bin/bash //redis-6380 root@a9fa77adc598:/Daten# redis-cli 127.0.0.1:6379> SLAVEVON 172.17.0.1 6379 OK 127.0.0.1:6379> beenden root@a9fa77adc598:/Daten# beenden Ausfahrt [root@tcy1 tcy]# docker exec -it 6ee2f2f007e6 /bin/bash //redis-6381 root@6ee2f2f007e6:/Daten# redis-cli 127.0.0.1:6379> SLAVEVON 172.17.0.1 6379 OK 127.0.0.1:6379> beenden 5.4. Überprüfen Sie, ob redis-6379 bereits 2 Slaves hat, connected_slaves: 2, ja [root@tcy1 tcy]# docker exec -it ab54741166e1 /bin/bash root@ab54741166e1:/Daten# redis-cli 127.0.0.1:6379> Info-Replikation # Replikation Rolle: Meister verbundene_Slaves:2 Slave0:IP=172.17.0.3,Port=6379,Status=online,Offset=378,Lag=1 Slave1:IP=172.17.0.2,Port=6379,Status=online,Offset=378,Lag=0 master_replid:ce193b15cfd57f7dc3ccfbf2a4aef6156b131e6d master_replid2:0000000000000000000000000000000000000000 master_repl_offset:378 zweiter_Repl_Offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:378 127.0.0.1:6379> beenden root@ab54741166e1:/data# beenden Ausfahrt 5.5. Sentinel konfigurieren Geben Sie die drei Redis-Container zur Konfiguration ein und erstellen Sie die Datei sentinel.conf im Stammverzeichnis des Containers Der Dateiinhalt ist: sentinel monitor mymaster 172.17.0.1 6379 1 [root@tcy1 tcy]# docker exec -it a9fa77adc598 /bin/bash root@a9fa77adc598:/data# cd / && touch sentinel.conf root@a9fa77adc598:/# vim /sentinel.conf Wenn: bash: vim: Befehl nicht gefunden Lösung: 1. apt-get update 2. apt-get install vim Starten Sie abschließend den Redis Sentinel: root@a9fa77adc598:/# redis-sentinel /sentinel.conf 342:X 24 Jun 11:37:58.934 # oO0OoO0OoO0Oo Redis wird gestartet oO0OoO0OoO0Oo 342:X 24. Juni 11:37:58.957 # Redis Version=4.0.10, Bits=64, Commit=00000000, geändert=0, PID=342, gerade gestartet 342:X 24 Jun 11:37:58.958 # Konfiguration geladen 342:X 24. Juni 11:37:58.959 # Sie haben eine maximale Anzahl von Clients von 10000 angefordert, wofür mindestens 10032 Datei-Deskriptoren erforderlich sind. 342:X 24. Juni 11:37:58.959 # Der Server kann die maximale Anzahl geöffneter Dateien aufgrund eines Betriebssystemfehlers nicht auf 10032 setzen: Vorgang nicht zulässig. 342:X 24 Jun 11:37:58.960 # Die derzeit maximal geöffneten Dateien sind 4096. maxclients wurde auf 4064 reduziert, um das niedrige ulimit auszugleichen. Wenn Sie mehr maxclients benötigen, erhöhen Sie 'ulimit -n'. _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 4.0.10 (00000000/0) 64 Bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Ausführung im Sentinel-Modus |`-._`-...-` __...-.``-._|'` _.-'| Hafen: 26379 | `-._ `._ / _.-' | `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 342:X 24. Juni 11:37:59.068 # WARNUNG: Die TCP-Backlog-Einstellung von 511 kann nicht erzwungen werden, da /proc/sys/net/core/somaxconn auf den niedrigeren Wert von 128 eingestellt ist. 342:X 24. Juni 11:37:59.089 # Sentinel-ID ist dfd5a5bfe1036b1df3395c4ba858329034fc5b7e 342:X 24 Jun 11:37:59.091 # +monitor master mymaster 172.17.0.1 6379 Quorum 1 342:X 24. Juni 11:37:59.110 * +slave slave 172.17.0.3:6379 172.17.0.3 6379 @ mymaster 172.17.0.1 6379 342:X 24. Juni 11:37:59.115 * +Slave Slave 172.17.0.2:6379 172.17.0.2 6379 @ mein Master 172.17.0.1 6379 342:X 24. Juni 11:39:27.601 * +sentinel sentinel ba9b0d0539d8273edfcbd922fe138f50daa78bbb 172.17.0.2 26379 @ mymaster 172.17.0.1 6379 342:X 24. Juni 11:41:59.144 * +sentinel sentinel f0510f8582b72c056531f219397ed8826683e665 172.17.0.1 26379 @ mymaster 172.17.0.1 6379 Öffnen Sie zur einfacheren Beobachtung mehrere Fenster. Sentinel Sentinel-Konfiguration abgeschlossen 5.6 Testen Meister schließen [tcy@tcy1 ~]$ Docker-Stop ab54741166e1 ab54741166e1 Zu diesem Zeitpunkt wählen die verbleibenden beiden Slaves automatisch einen neuen Master, und hier wird 172.17.0.2 als Master gewählt. Überprüfen Sie 172.17.0.2, es ist der Host geworden. [root@tcy1 /]# docker exec -it 6ee2f2f007e6 /bin/bash root@6ee2f2f007e6:/Daten# redis-cli 127.0.0.1:6379> Info-Replikation # Replikation Rolle: Meister verbundene_Slaves:1 Slave0:IP=172.17.0.3,Port=6379,Status=online,Offset=66906,Lag=1 master_replid:5a7489c8181ddf0d73d418d30d6a4c8e039198ba master_replid2:ce193b15cfd57f7dc3ccfbf2a4aef6156b131e6d master_repl_offset:67041 zweiter_Repl_Offset:65534 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:85 repl_backlog_histlen:66957 127.0.0.1:6379> Zusammenfassen Oben ist die vom Herausgeber eingeführte Master-Slave-Konfiguration von Redis unter Docker. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten! Das könnte Sie auch interessieren:
|
<<: So verwenden Sie „Explain“, um den SQL-Ausführungsplan in MySql abzufragen
>>: So verwenden Sie vue3 zum Erstellen einer Materialbibliothek
1.# # stellt eine Position auf einer Webseite dar...
Inhaltsverzeichnis Vorwort 1. Grundkenntnisse zu ...
1 Einführung in HTML 1.1 Erste Erfahrungen mit Co...
Müssen die Felder und Eigenschaften der Tabelle i...
Der MGR unserer Bank wird Ende des Jahres eingefü...
Als ich kürzlich Docker zum Bereitstellen einer J...
Beim Erstellen eines Formulars in einem aktuellen...
React Native kann native iOS- und Android-Apps ba...
Inhaltsverzeichnis Vorwort Ursachenanalyse und Lö...
MySQL Binlog ist ein sehr wichtiges Protokoll in ...
px (Pixel) Ich glaube, jeder ist mit dem Begriff ...
Dieser Artikel veranschaulicht anhand von Beispie...
【1】existiert Verwenden Sie eine Schleife, um die ...
Struktur Text, Kopf, HTML, Titel Text abbr, Akron...
1. Kurze Einführung in die Veranstaltung Ein Erei...