Inhaltsverzeichnis
1 Erstellen Sie Redis-Bilder und Container
1.1 Download Redis6.0.8
1.2 Vorbereiten Sie 6 Server-Konfigurationsdateien
1.3 Erstellen Sie 6 Redis Container
2 erstellen Master-Slave-Cluster-Beziehung
2.1 Geben Sie einen beliebigen Redis-Container ein.
3.1 Datenlese- und Schreibspeicher
3.1.1 Geben Sie 6381 ein hinzufügen zwei neue Gruppenschlüssel
3.2. 1 Master 6381 und Slave-Switch
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
5.2 Löschen Sie 6388 (löschen Sie Nr. 4 von Knoten 6388 aus dem Cluster)
Heim Datenbank Redis So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

May 26, 2023 am 09:47 AM
redis docker

1 Erstellen Sie Redis-Bilder und Container

1.1 Download Redis6.0.8

1

docker pull redis:6.0.8

Nach dem Login kopieren

1.2 Vorbereiten Sie 6 Server-Konfigurationsdateien

1

2

3

4

5

6

7

# 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

Nach dem Login kopieren

1.3 Erstellen Sie 6 Redis Container

1

2

3

4

5

6

7

8

9

10

11

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

Nach dem Login kopieren

2 erstellen Master-Slave-Cluster-Beziehung

2.1 Geben Sie einen beliebigen Redis-Container ein.

2.2 Master-Slave-Beziehung aufbauen

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves2.3 Clusterstatus anzeigen

1

docker exec -it redis-node-1 /bin/bash

Nach dem Login kopieren

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei SlavesDrei Master-Slave-Fehlertoleranz-Switching-Migrationsfälle

3.1 Datenlese- und Schreibspeicher

3.1.1 Geben Sie 6381 ein hinzufügen zwei neue Gruppenschlüssel

1

2

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节点

Nach dem Login kopieren

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves3.1.2 Zu anderen Servern im Cluster wechseln und den Wert abrufen

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves3.1.3 Clusterinformationen anzeigen

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves3.2 Fehlertolerante Switching-Migration

3.2. 1 Master 6381 und Slave-Switch

1

2

3

4

# 进入任意redis容器,这里以6381为例

redis-cli -p 6381

cluster info

cluster nodes

Nach dem Login kopieren

1

2

3

4

# 重新进入6381,-c可以防止路由失效((error) MOVED 12706 192.168.202.200:6383),往其他服务器hash槽存数据时报错。

redis-cli -p 6381 -c

set k1 v1

set k2 v2

Nach dem Login kopieren

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei SlavesWie 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

1

2

3

4

# 停止6381,机器,查看集群状态

docker stop redis-node-1

# 进入6382容器,查看集群状态

docker exec -it redis-node-2 bash

Nach dem Login kopieren

4.3 Fügen Sie die neu hinzugefügten 6387-Knoten (leere Slot-Nummer) als Masterknoten zum ursprünglichen Cluster hinzu

1

2

3

4

# 进入容器后先进入redis

redis-cli -p 6382 -c

# 查看集群信息

cluster nodes

Nach dem Login kopieren

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

4.5 Überprüfen Sie den Clusterstatus zum ersten Mal

1

2

3

# 先启动6381,再重启6384,即可将6381变为主机器。这里不做测试。

docker stop redis-node-4

docker start redis-node-4

Nach dem Login kopieren

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

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 Mal

1

redis-cli --cluster check 自己IP:6381

Nach dem Login kopieren
So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

Fünf Master-Slave-Reduktionsfall

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves5.1 Überprüfen Sie den Clusterstatus und erhalten Sie die Knoten-ID 6388

1

2

3

4

5

6

7

8

9

10

# 到宿主机上,准备配置文件

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

Nach dem Login kopieren

5.2 Löschen Sie 6388 (löschen Sie Nr. 4 von Knoten 6388 aus dem Cluster)

1

docker exec -it redis-node-7 /bin/bash

Nach dem Login kopieren

So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

5.3 Löschen Sie die Steckplatznummer von 6387 und verteilen Sie sie neu In diesem Beispiel werden alle gelöschten Schlitznummern an 6381So erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

1

2

3

4

# 将新增的6387作为master节点加入集群

redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381

6387 就是将要作为master新增节点

6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群

Nach dem Login kopieren

5.4 gegeben Status zum dritten MalSo erstellen Sie mit Docker einen Redis-Cluster mit drei Mastern und drei Slaves

1

2

redis-cli --cluster check 真实ip地址:6381

# 执行结果可以看出暂时没有槽号

Nach dem Login kopieren

Anhang: Redis-Factory-Konfigurationsdatei

1

2

3

4

5

# 重新分派槽号

# 命令:redis-cli --cluster reshard IP地址:端口号

redis-cli --cluster reshard 192.168.202.200:6381

# 4096 下面的是接收hash槽的redis容器ID,这里是6387对应的id

# source node :从哪些原来的主机上分配资源下来,all表示全部master

Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösung für den Fehler 0x80242008 bei der Installation von Windows 11 10.0.22000.100 Lösung für den Fehler 0x80242008 bei der Installation von Windows 11 10.0.22000.100 May 08, 2024 pm 03:50 PM

Lösung für den Fehler 0x80242008 bei der Installation von Windows 11 10.0.22000.100

Golang API-Caching-Strategie und -Optimierung Golang API-Caching-Strategie und -Optimierung May 07, 2024 pm 02:12 PM

Golang API-Caching-Strategie und -Optimierung

Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung May 08, 2024 pm 02:21 PM

Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein?

So installieren Sie Deepseek So installieren Sie Deepseek Feb 19, 2025 pm 05:48 PM

So installieren Sie Deepseek

Caching-Mechanismus und Anwendungspraxis in der PHP-Entwicklung Caching-Mechanismus und Anwendungspraxis in der PHP-Entwicklung May 09, 2024 pm 01:30 PM

Caching-Mechanismus und Anwendungspraxis in der PHP-Entwicklung

Wie verwende ich PHP CI/CD für eine schnelle Iteration? Wie verwende ich PHP CI/CD für eine schnelle Iteration? May 08, 2024 pm 10:15 PM

Wie verwende ich PHP CI/CD für eine schnelle Iteration?

Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit Jun 05, 2024 pm 08:29 PM

Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit

See all articles