3 Master + 3 Slaves
dient nur zum Testen, Daher verwende ich hier nur 1 Server für die Simulation redis.conf
Erstellen Sie redis-1, redis-2, redis-3, redis-4, redis- im Verzeichnis /opt/docker/redis-cluster 5. redis-6-Ordner
mkdir -p /opt/docker/redis-cluster/{redis-1,redis-2,redis-3,redis-4,redis-5,redis-6} #创建持久化目录 mkdir -p /opt/docker/redis-cluster/redis-1/data mkdir -p /opt/docker/redis-cluster/redis-2/data mkdir -p /opt/docker/redis-cluster/redis-3/data mkdir -p /opt/docker/redis-cluster/redis-4/data mkdir -p /opt/docker/redis-cluster/redis-5/data mkdir -p /opt/docker/redis-cluster/redis-6/data
3. Erstellen Sie unter jedem redis-*-Ordner eine redis.conf-Datei und schreiben Sie den folgenden Inhalt:
cluster-enabled yes # 开启集群 cluster-config-file nodes.conf # 集群配置文件 cluster-node-timeout 5000 # 集群节点多少时间未响应视为该节点丢失 appendonly yes port 6379 # redis监听端口 masterauth passwd123 #设置master节点密码 requirepass passwd123 #设置密码
Verwenden Sie hier direkt die Redis-Spiegeladresse daocloud.io/library/redis:6.0.4
, um docker-compose.yml in /root/redis zu erstellen -Cluster-Dokument.
version: '3.1' services: # redis1配置 redis1: image: daocloud.io/library/redis:6.0.4 container_name: redis-1 restart: always network_mode: "host" volumes: - /opt/docker/redis-cluster/redis-1/data:/data - /opt/docker/redis-cluster/redis-1/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis2配置 redis2: image: daocloud.io/library/redis:6.0.4 container_name: redis-2 restart: always network_mode: "host" volumes: - /opt/docker/redis-cluster/redis-2/data:/data - /opt/docker/redis-cluster/redis-2/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis3配置 redis3: image: daocloud.io/library/redis:6.0.4 container_name: redis-3 restart: always network_mode: "host" volumes: - /opt/docker/redis-cluster/redis-3/data:/data - /opt/docker/redis-cluster/redis-3/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis4配置 redis4: image: daocloud.io/library/redis:6.0.4 container_name: redis-4 restart: always network_mode: "host" volumes: - /opt/docker/redis-cluster/redis-4/data:/data - /opt/docker/redis-cluster/redis-4/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis5配置 redis5: image: daocloud.io/library/redis:6.0.4 container_name: redis-5 restart: always network_mode: "host" volumes: - /opt/docker/redis-cluster/redis-5/data:/data - /opt/docker/redis-cluster/redis-5/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis6配置 redis6: image: daocloud.io/library/redis:6.0.4 container_name: redis-6 restart: always network_mode: "host" volumes: - /opt/docker/redis-cluster/redis-6/data:/data - /opt/docker/redis-cluster/redis-6/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
Starten Sie den Container und führen Sie den Befehl aus:
#启动容器 docker-compose -f xxx.yaml up -d
redis-cli --cluster create 192.168.66.180:6379 \ 192.168.66.180:6380 \ 192.168.66.180:6381 \ 192.168.66.180:6382 \ 192.168.66.180:6383 \ 192.168.66.180:6384 \ --cluster-replicas 1
Das folgende Bild zeigt den Erfolg an.
Verwenden Sie den Befehl redis-cli, um eine Verbindung zu einem beliebigen Knoten im Cluster herzustellen. Ich habe es gerade auf einem Computer getestet, der die IP-Adresse des Clusters anpingen kann. Hier habe ich den lokalen Computer
6.1 verwendet, um die Knoteneigenschaften
redis-cli -c -h 192.168.66.180 -p 6379 192.168.66.180:6379> cluster info
cluster nodes
get test
192.168.66.180:6379> set test 'hello world' -> Redirected to slot [6918] located at 192.168.66.180:6380 OK 192.168.66.180:6380>
geändert hat Dies liegt daran, dass die Abfrage auf dem Shard ausgeführt wird, auf dem sich die Daten befinden, sodass sich der Verbindungsknoten nicht geändert hat.
7. Passwort hinzufügen: 7.1 Bearbeiten Sie die redis.conf-Datei168.66.180:6379> set test 'hello world' -> Redirected to slot [6918] located at 192.168.66.180:6380 OK 192.168.66.180:6380> get test "hello world" 192.168.66.180:6380>
#为redis.conf文件添加如下配置。这里设置密码为123456 masterauth 123456 requirepass 123456
#为docker-compose.yml中每个容器添加如下配置: environment: - REDISCLI_AUTH=123456
Das obige ist der detaillierte Inhalt vonWie Docker-Compose einen Redis-Cluster erstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!