Como configurar o Redis Cluster no Docker Desktop usando Compose
- Rodrigo Saito
- há 2 dias
- 3 min de leitura
Fala pessoal, tudo bem?
Já conseguiu configurar o Redis em um Cluster usando o Docker Desktop com o Compose?
Nesse blog, vamos fazer a criação de um cluster com o Redis, utilizando 6 nós de cluster. Para isso, vamos utilizar o Compose, que podemos vários containers de uma vez, facilitando a orquestração do nosso cluster.
Crie uma pasta preferencialmente onde o Docker Desktop já aponta como padrão. No meu caso, Power Shell do Docker compose aponta para c:\Users\rodrigosaito.
Crie uma pasta chamada clusterRedis
mkdir clusterRedis

Entre na pasta clusterRedis:
cd ClusterRedis

No VSCode, crie um arquivo docker-compose.yml nessa pasta e digite o código abaixo. Lembre-se que é um arquivo do tipo yaml, ou seja a indentação tem que estar de acordo para todos os parágrafos
services:
redisnode10:
image: redis:latest
container_name: redisnode10
hostname: redisnode10
ports:
- "7000:6379"
mem_limit: 2g
volumes:
- ./data/redisnode10:/data
command: redis-server --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
redisnode20:
image: redis:latest
container_name: redisnode20
hostname: redisnode20
ports:
- "7001:6379"
mem_limit: 2g
depends_on:
- redisnode10
volumes:
- ./data/redisnode20:/data
command: redis-server --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
redisnode30:
image: redis:latest
container_name: redisnode30
hostname: redisnode30
ports:
- "7002:6379"
mem_limit: 2g
depends_on:
- redisnode20
volumes:
- ./data/redisnode30:/data
command: redis-server --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
redisnode40:
image: redis:latest
container_name: redisnode40
hostname: redisnode40
ports:
- "7003:6379"
mem_limit: 2g
depends_on:
- redisnode30
volumes:
- ./data/redisnode40:/data
command: redis-server --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
redisnode50:
image: redis:latest
container_name: redisnode50
hostname: redisnode50
ports:
- "7004:6379"
mem_limit: 2g
depends_on:
- redisnode40
volumes:
- ./data/redisnode50:/data
command: redis-server --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
redisnode60:
image: redis:latest
container_name: redisnode60
hostname: redisnode60
ports:
- "7005:6379"
mem_limit: 2g
depends_on:
- redisnode50
volumes:
- ./data/redisnode60:/data
command: redis-server --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
redisnode70:
image: redis:latest
container_name: redisnode70
hostname: redisnode70
ports:
- "7006:6379"
mem_limit: 2g
depends_on:
- redisnode10
- redisnode20
- redisnode30
- redisnode40
- redisnode50
- redisnode60
entrypoint: ["/bin/sh", "-c"]
command: >
"sleep 10 &&
echo yes | redis-cli --cluster create
redisnode10:6379
redisnode20:6379
redisnode30:6379
redisnode40:6379
redisnode50:6379
redisnode60:6379
--cluster-replicas 1"
Arquivo docker-compose.yml aberto no VS Code

Esse arquivo também pode ser encontrado no nosso GitHub, em:
Certifique-se que o arquivo esteja na pasta correta:

Para subir o cluster, digite o comando:
docker compose up -d

Dessa forma, você terá os 6 nós dos cluster executando:

Podemos observar que o cluster possui 6 nós 1 um container que é utilizado para fazer a configuração do cluster Redis.
Para se conectar ao nó redisnode10, utilize o seguinte comando:
docker exec -it redisnode10 redis-cli -c
Aparecerá o prompt do redis-cli:

Faça a inserção de um dado chave e valor, dentro do redis-cli
SET empresa "datalib"


Para verificar os nós do cluster, digite o seguinte comando:
cluster nodes

Abra um novo terminal Power Shell

Entre na pasta do cluster e conecte a um outro nó do cluster:
cd clusterRedis
docker exec -it redisnode50 redis-cli -c

Digite o comando para pegar o dado da chave empresa
GET empresa

Dessa forma, sabemos que o cluster está funcionando.
Gostou dessa instalação?
Deixe seu comentário! No siga em nossas redes sociais e muito obrigado!
Datalib
Comments