Maison > Article > base de données > Comment Docker-Compose crée un cluster Redis
3 maître + 3 esclaves
est uniquement destiné aux tests, donc je n'utilise qu'un seul serveur pour la simulation ici
redis list
pour créer un répertoire sur le serveur pour stocker les fichiers de déploiement du cluster Redis. Le chemin que j'ai mis ici est /root/redis-cluster
Create redis-1, redis-2, redis-3, redis-4, redis- dans le répertoire /opt/docker/redis-cluster 5. Dossier redis-6
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
cluster-enabled yes # 开启集群 cluster-config-file nodes.conf # 集群配置文件 cluster-node-timeout 5000 # 集群节点多少时间未响应视为该节点丢失 appendonly yes port 6379 # redis监听端口 masterauth passwd123 #设置master节点密码 requirepass passwd123 #设置密码
Remarque : les valeurs du port ne peuvent pas tous être 6379. Selon les numéros de port définis dans la liste Redis ci-dessus, définissez les numéros de port 6379 ~ 6384 pour redis-1 ~ redis-6 dans l'ordre
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"]Démarrez le conteneur et exécutez la commande :
#启动容器 docker-compose -f xxx.yaml up -d
# 🎜🎜## 🎜🎜#5. Ouvrez le cluster
Trouvez un conteneur dans lequel entrer. Ici, je choisis redis-1 pour entrer. Après être entré dans le conteneur, entrez la commande suivante pour démarrer le cluster :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
L'image suivante indique le succès.
6. Test
Utilisez la commande redis-cli pour vous connecter à n'importe quel nœud du cluster. Je viens de le tester sur un ordinateur capable de pinger l'adresse IP du cluster. Ici, j'ai utilisé l'ordinateur local6.1 pour afficher les propriétés du nœudredis-cli -c -h 192.168.66.180 -p 6379 192.168.66.180:6379> cluster infocomme indiqué ci-dessous, Il s'agit de l'état de santé du cluster
6.2 Afficher les informations sur le nœud
cluster nodes#🎜🎜 # Faites attention aux mots-clés tels que esclave, maître, moi-même, etc. dans l'image. 6.3 Insérer une valeur
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>Remarque : Ici selon slicing Bascule automatiquement vers le nœud où se trouve le fragment de données, vous pouvez donc voir ci-dessous que le nœud connecté est devenu 192.168.1.4:6380
get test
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>
This c'est parce que c'est La requête est effectuée sur le fragment où se trouvent les données, donc le nœud de connexion n'a pas changé.
7. Ajouter un mot de passe :
7.1 Modifier le fichier redis.conf
#为redis.conf文件添加如下配置。这里设置密码为123456 masterauth 123456 requirepass 123456
#为docker-compose.yml中每个容器添加如下配置: environment: - REDISCLI_AUTH=123456# 🎜🎜#7.3 Connectez-vous au cluster
redis-cli -c -h 192.168.66.180 -p 6379 -a 123456
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!