Systemumgebung: Ubuntu 16.04LTS In diesem Artikel werden 6 Docker-Container verwendet, um einen Clustertest für eine einzelne Maschine zu erstellen. Wenn die tatsächliche Umgebung mehrere Maschinen umfasst, können Sie die Anzahl der Container, Portnummern und Cluster-IP-Adressen entsprechend ändern. Für jede Maschine können die gleichen Schritte wie unten beschrieben ausgeführt werden. Rufen Sie das offizielle Redis-Image ab Docker-Pull Redis: 5.0 Erstellen von Konfigurationsdateien und Datenverzeichnissen Erstellen Sie ein Verzeichnis mkdir ~/redis_cluster cd ~/redis_cluster Erstellen Sie eine neue Vorlagendatei sudo vim redis_cluster.tmpl und füllen Sie den folgenden Inhalt aus: # Redis-Port ${PORT} # Schutzmodus deaktivieren protected-mode no # Cluster aktivieren cluster-enabled yes # Clusterknotenkonfiguration Clusterkonfigurationsdatei nodes.conf #Timeout Cluster-Knoten-Timeout 5000 # Der IP-Hostmodus des Clusterknotens ist die IP des Hostcomputers Cluster-Ankündigungs-IP 10.10.100.197 # Cluster-Knoten-Ports 7000 - 7005 Cluster-Ankündigungs-Port ${PORT} Cluster-Ankündigungsbus-Port 1${PORT} # Aktivieren Sie den Appendonly-Sicherungsmodus appendonly yes # Backup jede Sekunde appendfsync everysec #Ob beim Komprimieren von AOF-Dateien eine Synchronisierung durchgeführt werden soll no-appendfsync-on-rewrite no # Wenn die aktuelle aof-Dateigröße 100 % der zuletzt umgeschriebenen aof-Dateigröße überschreitet, wird sie erneut umgeschrieben auto-aof-rewrite-percentage 100 # Die Mindestgröße der AOF-Datei vor dem Neuschreiben beträgt standardmäßig 64 MB Auto-Aof-Rewrite – Mindestgröße 5120 MB # Deaktivieren Sie das Speichern von Snapshot-Backups "" Um Konfigurationsdateien und Datenverzeichnisse stapelweise zu erstellen, führen Sie den folgenden Befehl im Terminal aus: für Port in `seq 7000 7005`; mache \ mkdir -p ./${port}/conf \ && PORT=${port} envsubst < ./redis_cluster.tmpl > ./${port}/conf/redis.conf \ && mkdir -p ./${port}/data; \ Erledigt Redis-Container stapelweise starten Die IP-Adresse des Containers verwendet den Hostmodus: für Port in `seq 7000 7005`; mache \ docker run -d -it --memory=1G \ -v ~/redis_cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \ -v ~/redis_cluster/${port}/data:/data \ --restart immer --name redis-${port} --net host \ --sysctl net.core.somaxconn=1024 redis:5.0 redis-server /usr/local/etc/redis/redis.conf; \ Erledigt Dabei begrenzt --memeory=1G die Speichergröße eines einzelnen Docker-Containers auf 1 GB. Wenn diese Grenze überschritten wird, wird der Prozess beendet. Während der Laufzeit kann die Warnung „Speicher ohne Swap begrenzt …“ erscheinen, die ignoriert werden kann. Wenn Sie den Speicher nicht begrenzen müssen, können Sie den Parameter --memeory entfernen. Erstellen eines Clusters Geben Sie einen der Container ein: Docker Exec -it Redis-7000 Bash Führen Sie nach der Eingabe den folgenden Befehl aus, um einen Cluster zu erstellen: redis-cli --cluster erstellen 10.10.100.197:7000 10.10.100.197:7001 10.10.100.197:7002 10.10.100.197:7003 10.10.100.197:7004 10.10.100.197:7005 --cluster-replicas 1 Installieren Sie den Befehl „redis-cli“ (überspringen Sie diesen Schritt, wenn Sie ihn bereits haben): sudo apt installiere Redis-Tools Nach der Eingabe von „yes“ wird der Cluster erstellt. Beenden Sie Docker und melden Sie sich bei einem der Knoten an, um die Verfügbarkeit des Clusters zu überprüfen: redis-cli -c -p 7000 Geben Sie Clusterknoten ein, um den Clusterstatus anzuzeigen 127.0.0.1:7000> Clusterknoten 06851aa134d50096d82a434eced9194233b5204e 10.10.100.197:7003@17003 Slave 8b33f273386c9504ef8bd10b005e24825b3b9596 0 1567671901000 4 verbunden a42297b65f7101fc9e4941ef8a0e65080d1b6338 10.10.100.197:7005@17005 Slave 0aa20378d14e3ef0859815196cbafa67e1001d0e 0 1567671901581 6 verbunden e7b6a35b1e92f94c225c507ea19f7f0318f0d1c3 10.10.100.197:7002@17002 Master - 0 1567671902582 3 verbunden 10923-16383 0aa20378d14e3ef0859815196cbafa67e1001d0e 10.10.100.197:7000@17000 ich selbst, Meister - 0 1567671901000 1 verbunden 0-5460 8b33f273386c9504ef8bd10b005e24825b3b9596 10.10.100.197:7001@17001 Master - 0 1567671902383 2 verbunden 5461-10922 fe355eed99100197f43d1216d1de82643dd496a5 10.10.100.197:7004@17004 Slave e7b6a35b1e92f94c225c507ea19f7f0318f0d1c3 0 1567671901380 5 verbunden Festlegen des Clusterkennworts Warum schreiben Sie das Kennwort nicht in die obigen Schritte, wenn Sie die Vorlagendatei zum stapelweisen Erstellen von Konfigurationsdateien verwenden? Unabhängig davon, ob in Redis 5.x oder früheren Redis-Versionen Ruby zum Erstellen eines Clusters verwendet wird, gibt es im Prozess zum Erstellen eines Clusters „redis-cli --cluster create“ keine Konfiguration der Kennwortparameter. Daher müssen wir das Kennwort nach dem Erstellen des Clusters festlegen. Wir verwenden die Config-Set-Methode, um für jeden Knoten dasselbe Kennwort festzulegen (Redis muss nicht neu gestartet werden, es ist nach dem Neustart weiterhin gültig). Fügen Sie vorher allen Redis-Konfigurationsdateien W-Berechtigungen hinzu, da das Kennwort sonst nicht in der Datei gespeichert werden kann. Beachten Sie, dass der aktuelle Pfad immer noch ~/redis_cluster/ ist: für Port in `seq 7000 7005`; mache \ chmod a+w ./${port}/conf/redis.conf; \ Erledigt Nehmen wir eines als Beispiel: Melden Sie sich bei einem Knoten an: redis-cli -c -p 7000 Passwort festlegen: 127.0.0.1:7000> Konfigurationssatz Masterauth 123456 OK 127.0.0.1:7000> Konfigurationssatz requirepass 123456 OK 127.0.0.1:7000>Auth. 123456 OK 127.0.0.1:7000> Konfiguration neu schreiben OK Führen Sie den gleichen Vorgang auf den folgenden Geräten durch. Einfacher Test des Clusters beim Schreiben von Daten Melden Sie sich bei einem beliebigen Clusterknoten an: redis-cli -c -p 7003 -a 123456 Daten schreiben: 127.0.0.1:7003> setze va 1 -> Umgeleitet zum Steckplatz [7800] bei 10.10.100.197:7001 OK 10.10.100.197:7001> hol dir va "1" 10.10.100.197:7001> weiterlesen (Ganzzahl) 1 Es ist ersichtlich, dass Daten, die von jedem Knoten im Cluster geschrieben werden, von jedem anderen Knoten gelesen werden können. An diesem Punkt ist der Redis-Cluster erstellt. Weitere Überlegungen
für Port in `seq 7000 7005`; mache \ Docker stoppe Redis-${Port}; Docker rm redis-${port}; Erledigt Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Acht gängige SQL-Verwendungsbeispiele in MySQL
MySQL wird in eine Installationsversion und eine ...
Wie wird ein Textüberlauf angezeigt? Was sind Ihr...
Vorwort Ich habe vor Kurzem MySQL 5.7 installiert...
Code kopieren Der Code lautet wie folgt: <html...
Zusammenfassung In diesem Artikel werden die folg...
Code kopieren Der Code lautet wie folgt: <meta...
1. Grundlegender Spring-Boot-Schnellstart 1.1 Sch...
1. Einleitung Wenn Sie früher einen bestimmten Te...
Wenn Sie den Text im Textarea-Eingabebereich umbre...
Meine Maschinenumgebung: Windows 2008 R2 MySQL 5....
Laden Sie das Nginx-Image in Docker herunter Dock...
Was ist Fuser Command? Der Befehl fuser ist ein s...
1. Erster Download von der offiziellen Website vo...
Dieser Artikel veranschaulicht anhand von Beispie...
Um zu verhindern, dass nicht konforme Daten in di...