In letzter Zeit haben mich viele Freunde als Freund hinzugefügt, um nach dem Problem beim Einrichten eines Redis-Clusters zu fragen. Ich denke, mit dem Artikel „Einrichten eines Redis-Clusters basierend auf Docker“, den ich zuvor geschrieben habe, stimmt etwas nicht. Deshalb habe ich ein paar Minuten damit verbracht, den vorherigen Artikel durchzulesen und die folgenden Fragen zusammengefasst: Die Anzahl der Redis ist zu gering und es werden nur 3 Instanzen erstellt. Da es nur 3 Instanzen gibt, können alle nur Masterknoten sein und die Master-Slave-Beziehung des Clusters kann nicht widergespiegelt werden. Wie erstellt man einen Master-Slave-Cluster? Wie werden Slave-Knoten zugewiesen? Basierend auf dem vorherigen Artikel möchte ich diese Fragen kurz durchgehen. Dieser Artikel basiert auf der Version Docker + Redis 5.0.5 und erstellt im Clustermodus einen Master-Slave-Cluster mit 6 Redis-Instanzen. Natürlich wird im Artikel auf die entsprechenden Parameterbeschreibungen hingewiesen, sodass die Methode auch bei der Erstellung eines Clusters mit 9 Instanzen dieselbe ist. 1. Ziehen Sie das Redis-ImageBasierend auf Redis: Version 5.0.5, führen Sie die folgenden Anweisungen aus: Docker-Pull Redis: 5.0.5 2. Erstellen Sie 6 Redis-ContainerErstellen Sie 6 Redis-Container:
Der Ausführungsbefehl lautet wie folgt: docker erstellen --name redis-node1 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379 docker erstellen --name redis-node2 --net host -v /data/redis-data/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380 docker erstellen --name redis-node3 --net host -v /data/redis-data/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381 docker erstellen --name redis-node4 --net host -v /data/redis-data/node4:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382 docker erstellen --name redis-node5 --net host -v /data/redis-data/node5:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383 docker erstellen --name redis-node6 --net host -v /data/redis-data/node6:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384 Einige Parametererklärungen:
Screenshot des ausgeführten Befehls: 3. Starten Sie den Redis-ContainerDer Ausführungsbefehl lautet wie folgt: Docker starten Redis-Knoten1 Redis-Knoten2 Redis-Knoten3 Redis-Knoten4 Redis-Knoten5 Redis-Knoten6 Der Start-Screenshot sieht wie folgt aus: 4. Erstellen Sie einen Redis-ClusterGeben Sie eine beliebige Redis-Instanz ein: # Hier nehmen wir die Instanz redis-node1 als Beispiel docker exec -it redis-node1 /bin/bash Führen Sie den Befehl des Komponentenclusters aus: # Einen Cluster erstellen, 10.211.55.4 ist die IP-Adresse der aktuellen physischen Maschine redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 10.211.55.4:6383 10.211.55.4:6384 --cluster-replicas 1 Der Screenshot des Ausführungsbefehls sieht wie folgt aus: Überprüfen Sie nach der erfolgreichen Erstellung die Clusterknoteninformationen über Redis-CLI: root@CentOS7:/data# redis-cli 127.0.0.1:6379> Clusterknoten Der Screenshot des Ausführungsbefehls sieht wie folgt aus: 5. Informationen zum Aufbau eines Redis-ClustersKehren wir zum Befehl zum Erstellen des Clusters zurück: redis-cli --cluster erstellen 10.211.55.4:6379~6384 --cluster-replicas 1 Bitte achten Sie besonders auf diesen Parameter --cluster-replicas 1. Die Zahl nach dem Parameter gibt das Master-Slave-Verhältnis an. Die 1 hier bedeutet beispielsweise, dass das Master-Slave-Verhältnis 1:1 beträgt. Was bedeutet das? Das heißt, 1 Masterknoten entspricht mehreren Slaveknoten. Es gibt jetzt 6 Instanzen, daher beträgt die Master-Slave-Zuordnung 3 Masterknoten und 3 Slaveknoten. Um die Robustheit des Clusters sicherzustellen, müssen mindestens drei Masterknoten vorhanden sein. Was wäre wenn --cluster-replicas 2? Dann beträgt das Master-Slave-Verhältnis 1:2, das heißt, 1 Masterknoten entspricht 2 Slaveknoten. Das heißt: 3 (Master) + 6 (Slave) = 9 Redis-Instanzen. Was passiert, wenn weniger als 9 Redis-Instanzen vorhanden sind, der Parameter aber als 2 angegeben ist? Die Fehlermeldung lautet: Die Eingabeaufforderung ist sehr klar: Der Redis-Cluster benötigt mindestens 3 Masterknoten. Dann müssen 6 Slave-Knoten vorhanden sein, sodass letztendlich mindestens 9 Knoten erforderlich sind. OK, ich werde nicht mit der Anforderung von mindestens 3 Masterknoten fortfahren, aber ich denke, 4 Masterknoten und 2 Slaveknoten sollten ausreichen, oder? 4 Masternodes überzeugen: # Geben Sie eine gestartete Redis-Instanz ein. Hier nehmen wir die Instanz redis-node1 als Beispiel. docker exec -it redis-node1 /bin/bash Führen Sie den Befehl aus, um einen Cluster zu erstellen: redis-cli --cluster erstellen 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 --cluster-replicas 0 Geben Sie 4 Master ohne Slaves an, sodass Sie 4 Master haben: Was ist mit den verbleibenden zwei Slave-Knoten? Manuell hinzufügen. Wie hinzufügen? Manuell hinzufügen! Sehen Sie die IDs dieser Masterknoten? Weisen Sie ihnen einfach Slaves zu. Führen Sie weiterhin die folgenden Befehle aus: redis-cli --cluster add-node 10.211.55.4:6383 10.211.55.4:6379 --cluster-slave --cluster-master-id b0c32b1dae9e7b7f7f4b74354c59bdfcaa46f30a redis-cli --cluster add-node 10.211.55.4:6384 10.211.55.4:6379 --cluster-slave --cluster-master-id 111de8bed5772585cef5280c4b5225ecb15a582e Die beiden Redis-Instanzen sind an andere Masterknoten angeschlossen: Schließlich rufen wir redis-cli auf und zeigen die Knoteninformationen über die Clusterknoten an: Dies ist das Ende dieses Artikels über die Implementierung eines Redis-Master-Slave-Clusters basierend auf Docker. Weitere relevante Inhalte zum Docker Redis-Master-Slave-Cluster finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des Problems bei der Kombination von CSS-Ellipsen und -Auffüllungen
>>: Grundkenntnisse in HTML: ein erstes Verständnis von Webseiten
Vorwort Der von mir verwendete Computer ist ein M...
Hintergrund Der Domänenname der Schnittstelle ist...
Verwenden Sie Anti-Shake, um DIV verschwinden zu ...
Unter Linux treten häufig Situationen auf, in den...
Zugehörige Dokumente Ein Teil dieses Artikels wir...
Es gibt zwei Möglichkeiten, mit Nginx mehrere Pro...
Manchmal ist es schön, ein paar nette Scrollbar-E...
Inhaltsverzeichnis Überblick Lösung 1: Verschlüss...
In diesem Artikel wird der spezifische Code von V...
Inhaltsverzeichnis 1. Entdecken Sie das Problem 2...
Die Wirkung ist wie folgt:Referenzprogramm: <!...
Inhaltsverzeichnis Hintergrund Warum Fehlerbehand...
1. Zuerst wird beim Verknüpfen von Git eine Fehle...
Für Windows-Benutzer Verwenden von openGauss in D...
Vorbereitung Zuerst müssen Sie nodejs herunterlad...