Maison > base de données > Redis > Comment Docker-Compose crée un cluster Redis

Comment Docker-Compose crée un cluster Redis

PHPz
Libérer: 2023-05-30 16:46:22
avant
1822 Les gens l'ont consulté

1. La configuration du cluster

  • 3 maître + 3 esclaves

  • est uniquement destiné aux tests, donc je n'utilise qu'un seul serveur pour la simulation ici

redis list

Comment Docker-Compose crée un cluster Redis

2. redis.conf

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
Copier après la connexion

3. Créez un fichier redis.conf sous chaque dossier redis-* et écrivez le contenu suivant :

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

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

4. Fichier .yml #🎜 🎜#

Ici, utilisez directement l'adresse miroir redis daocloud.io/library/redis:6.0.4

pour créer docker-compose.yml dans le /root/redis -dossier cluster.

docker-compose.yml le contenu du fichier est le suivant :

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"]
Copier après la connexion

Démarrez le conteneur et exécutez la commande :

#启动容器
docker-compose -f xxx.yaml up -d
Copier après la connexion

# 🎜🎜## 🎜🎜#5. Ouvrez le clusterComment Docker-Compose crée un cluster Redis

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
Copier après la connexion

L'image suivante indique le succès. Comment Docker-Compose crée un cluster Redis

6. Test Comment Docker-Compose crée un cluster Redis

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 local

6.1 pour afficher les propriétés du nœud

redis-cli -c -h 192.168.66.180 -p 6379
192.168.66.180:6379> cluster info
Copier après la connexion

comme indiqué ci-dessous, Il s'agit de l'état de santé du cluster

6.2 Afficher les informations sur le nœudComment Docker-Compose crée un cluster Redis

cluster nodes
Copier après la connexion

#🎜🎜 # Faites attention aux mots-clés tels que esclave, maître, moi-même, etc. dans l'image.

Comment Docker-Compose crée un cluster Redis

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>
Copier après la connexion
Comment Docker-Compose crée un cluster Redis

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

Comment Docker-Compose crée un cluster Redisget 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>
Copier après la connexion

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
Copier après la connexion

7.2 Modifier le fichier docker-compose.yml

#为docker-compose.yml中每个容器添加如下配置:
environment:
  - REDISCLI_AUTH=123456
Copier après la connexion
# 🎜🎜#7.3 Connectez-vous au cluster

redis-cli -c -h 192.168.66.180 -p 6379 -a 123456
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal