Heim  >  Artikel  >  Datenbank  >  Wie Docker-Compose einen Redis-Cluster erstellt

Wie Docker-Compose einen Redis-Cluster erstellt

PHPz
PHPznach vorne
2023-05-30 16:46:221709Durchsuche

1. Cluster-Konfiguration

  • 3 Master + 3 Slaves

  • dient nur zum Testen, Daher verwende ich hier nur 1 Server für die Simulation redis.conf

  • , um ein Verzeichnis auf dem Server zu erstellen, in dem die Redis-Cluster-Bereitstellungsdateien gespeichert werden. Der Pfad, den ich hier eingegeben habe, ist /root/redis-cluster

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: Wie Docker-Compose einen Redis-Cluster erstellt

cluster-enabled yes # 开启集群
cluster-config-file nodes.conf # 集群配置文件
cluster-node-timeout 5000 # 集群节点多少时间未响应视为该节点丢失
appendonly yes
port 6379 # redis监听端口
masterauth passwd123  #设置master节点密码
requirepass passwd123 #设置密码

Hinweis: Die Portwerte ​​Es können nicht alle 6379 sein. Legen Sie gemäß den in der Redis-Liste oben festgelegten Portnummern die Portnummern 6379~6384 für Redis-1 ~ Redis-6 in der Reihenfolge

4 fest. Schreiben Sie den Docker-Compose .yml-Datei #🎜 🎜#

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.

docker-compose.yml-Dateiinhalt ist wie folgt:

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

# 🎜🎜## 🎜🎜#5. Öffnen Sie den Cluster

Hier wähle ich redis-1 zum Betreten. Geben Sie nach dem Betreten des Containers den folgenden Befehl ein, um den Cluster zu starten:

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.

Wie Docker-Compose einen Redis-Cluster erstellt

6. Test

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 KnoteneigenschaftenWie Docker-Compose einen Redis-Cluster erstellt

redis-cli -c -h 192.168.66.180 -p 6379
192.168.66.180:6379> cluster info

anzuzeigen, wie unten gezeigt. Das ist der Cluster-Gesundheitsstatus # Achten Sie auf die Schlüsselwörter wie Sklave, Meister, ich selbst usw. im Bild.

Wie Docker-Compose einen Redis-Cluster erstellt

6.3 Wert einfügen

cluster nodes

Hinweis: Dies basiert auf beim Slicing Automatisch auf den Knoten umgeschaltet, auf dem sich der Daten-Shard befindet, sodass Sie unten sehen können, dass sich der verbundene Knoten in 192.168.1.4:6380

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. Wie Docker-Compose einen Redis-Cluster erstellt

7. Passwort hinzufügen:

7.1 Bearbeiten Sie die redis.conf-Datei

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> get test
"hello world"
192.168.66.180:6380>
Wie Docker-Compose einen Redis-Cluster erstellt7.2 Bearbeiten Sie die docker-compose.yml-Datei

#为redis.conf文件添加如下配置。这里设置密码为123456
masterauth 123456
requirepass 123456
# 🎜🎜#7.3 Mit dem Cluster verbinden

#为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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen