


So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves
1 Erstellen Sie Redis-Bilder und Container
1.1 Download Redis6.0.8
docker pull redis:6.0.8
1.2 Vorbereiten Sie 6 Server-Konfigurationsdateien
# redis出场配置放在文章最后 mkdir -p /usr/local/repository/redis/redis-node-1 # 配置参考文章最后 vim /usr/local/repository/redis/redis-node-1/redis.conf cd /usr/local/repository/redis # 依次复制其他5份 cp -r redis-node-1/ ./redis-node-2
1.3 Erstellen Sie 6 Redis Container
docker run -d --name redis-node-1 --net host --privileged=true -v /usr/local/repository/redis/redis-node-1/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-1/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -d --name redis-node-2 --net host --privileged=true -v /usr/local/repository/redis/redis-node-2/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-2/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382 docker run -d --name redis-node-3 --net host --privileged=true -v /usr/local/repository/redis/redis-node-3/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-3/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383 docker run -d --name redis-node-4 --net host --privileged=true -v /usr/local/repository/redis/redis-node-4/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-4/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384 docker run -d --name redis-node-5 --net host --privileged=true -v /usr/local/repository/redis/redis-node-5/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-5/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385 docker run -d --name redis-node-6 --net host --privileged=true -v /usr/local/repository/redis/redis-node-6/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-6/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
2 erstellen Master-Slave-Cluster-Beziehung
2.1 Geben Sie einen beliebigen Redis-Container ein.
2.2 Master-Slave-Beziehung aufbauen2.3 Clusterstatus anzeigen
docker exec -it redis-node-1 /bin/bash
Drei Master-Slave-Fehlertoleranz-Switching-Migrationsfälle
3.1 Datenlese- und Schreibspeicher
3.1.1 Geben Sie 6381 ein hinzufügen zwei neue Gruppenschlüssel
redis-cli --cluster create 192.168.202.200:6381 192.168.202.200:6382 192.168.202.200:6383 192.168.202.200:6384 192.168.202.200:6385 192.168.202.200:6386 --cluster-replicas 1 # --cluster-replicas 1 表示为每个master创建一个slave节点
3.1.2 Zu anderen Servern im Cluster wechseln und den Wert abrufen
3.1.3 Clusterinformationen anzeigen
3.2 Fehlertolerante Switching-Migration
3.2. 1 Master 6381 und Slave-Switch
# 进入任意redis容器,这里以6381为例 redis-cli -p 6381 cluster info cluster nodes
# 重新进入6381,-c可以防止路由失效((error) MOVED 12706 192.168.202.200:6383),往其他服务器hash槽存数据时报错。 redis-cli -p 6381 -c set k1 v1 set k2 v2
Wie im obigen Bild zu sehen ist, wechselt 6384 vom Slave zum Master, wenn 6381 ausfällt.
3.2.2 6381 neu starten
Nach dem Neustart stellten wir fest, dass 6381 immer noch die Slave-Maschine und 6384 die Master-Maschine ist. Wenn die Leute gehen, ist der Tee kühl. Um es wieder zu ändern, stoppen Sie einfach und starten Sie 6384. 3.2.3 Überprüfen Sie den Cluster-Status 4.2 Geben Sie ein innerhalb der 6387-Containerinstanz
# 停止6381,机器,查看集群状态 docker stop redis-node-1 # 进入6382容器,查看集群状态 docker exec -it redis-node-2 bash
4.3 Fügen Sie die neu hinzugefügten 6387-Knoten (leere Slot-Nummer) als Masterknoten zum ursprünglichen Cluster hinzu
# 进入容器后先进入redis redis-cli -p 6382 -c # 查看集群信息 cluster nodes
4.5 Überprüfen Sie den Clusterstatus zum ersten Mal
# 先启动6381,再重启6384,即可将6381变为主机器。这里不做测试。 docker stop redis-node-4 docker start redis-node-4
4.6 Weisen Sie die Steckplatznummer neu zu. Cluster-Hinzufügen-Knoten IP: neuer Slave-Port IP: neuer Master-Port - -cluster-slave --cluster-master-id Neue Hostknoten-ID
redis-cli --cluster add-node 192.168.202.200:6388 192.168.202.200:6387 --cluster -slave --cluster-master-id e4781f644d4a4e4d4b4d107157b9 ba8144631451- ------Dies ist die Nummer 6387. Entsprechend Ihrer tatsächlichen Situation
4.9 Überprüfen Sie den Clusterstatus zum dritten Malredis-cli --cluster check 自己IP:6381

5.1 Überprüfen Sie den Clusterstatus und erhalten Sie die Knoten-ID 6388
# 到宿主机上,准备配置文件 cd /usr/local/repository/redis # 参考上面6台机器,生成配置文件 # 启动6387及6388两个容器 docker run -d --name redis-node-7 --net host --privileged=true -v /usr/local/repository/redis/redis-node-7/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-7/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387 docker run -d --name redis-node-8 --net host --privileged=true -v /usr/local/repository/redis/redis-node-8/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-8/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388 # 查看容器是否创建成功 docker ps
5.2 Löschen Sie 6388 (löschen Sie Nr. 4 von Knoten 6388 aus dem Cluster)
docker exec -it redis-node-7 /bin/bash
5.3 Löschen Sie die Steckplatznummer von 6387 und verteilen Sie sie neu In diesem Beispiel werden alle gelöschten Schlitznummern an 6381
# 将新增的6387作为master节点加入集群 redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381 6387 就是将要作为master新增节点 6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群
5.4 gegeben Status zum dritten Mal
redis-cli --cluster check 真实ip地址:6381 # 执行结果可以看出暂时没有槽号
Anhang: Redis-Factory-Konfigurationsdatei
# 重新分派槽号 # 命令:redis-cli --cluster reshard IP地址:端口号 redis-cli --cluster reshard 192.168.202.200:6381 # 4096 下面的是接收hash槽的redis容器ID,这里是6387对应的id # source node :从哪些原来的主机上分配资源下来,all表示全部master
Das obige ist der detaillierte Inhalt vonSo erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

Redis verwendet Hash -Tabellen, um Daten zu speichern und unterstützt Datenstrukturen wie Zeichenfolgen, Listen, Hash -Tabellen, Sammlungen und geordnete Sammlungen. Ernähren sich weiterhin über Daten über Snapshots (RDB) und appendiert Mechanismen nur Schreibmechanismen. Redis verwendet die Master-Slave-Replikation, um die Datenverfügbarkeit zu verbessern. Redis verwendet eine Ereignisschleife mit einer Thread, um Verbindungen und Befehle zu verarbeiten, um die Datenatomizität und Konsistenz zu gewährleisten. Redis legt die Ablaufzeit für den Schlüssel fest und verwendet den faulen Löschmechanismus, um den Ablaufschlüssel zu löschen.

Schritte zur Lösung des Problems, das Redis-Server nicht finden kann: Überprüfen Sie die Installation, um sicherzustellen, dass Redis korrekt installiert ist. Setzen Sie die Umgebungsvariablen Redis_host und Redis_port; Starten Sie den Redis-Server Redis-Server; Überprüfen Sie, ob der Server Redis-Cli Ping ausführt.

Um alle Schlüssel in Redis anzuzeigen, gibt es drei Möglichkeiten: Verwenden Sie den Befehl keys, um alle Schlüssel zurückzugeben, die dem angegebenen Muster übereinstimmen. Verwenden Sie den Befehl scan, um über die Schlüssel zu iterieren und eine Reihe von Schlüssel zurückzugeben. Verwenden Sie den Befehl Info, um die Gesamtzahl der Schlüssel zu erhalten.

Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

Die folgenden zwei Methoden können verwendet werden, um Daten in Redis: Flushall -Befehl zu löschen: Alle Schlüssel und Werte in der Datenbank löschen. Befehl config ResetStat: Setzen Sie alle Zustände der Datenbank zurück (einschließlich Schlüssel, Werte und anderer Statistiken).

Zu den Schritten zum Starten eines Redis -Servers gehören: Installieren von Redis gemäß dem Betriebssystem. Starten Sie den Redis-Dienst über Redis-Server (Linux/macOS) oder redis-server.exe (Windows). Verwenden Sie den Befehl redis-cli ping (linux/macOS) oder redis-cli.exe ping (Windows), um den Dienststatus zu überprüfen. Verwenden Sie einen Redis-Client wie Redis-Cli, Python oder Node.js, um auf den Server zuzugreifen.
