top of page

Como configurar o Redis Cluster no Docker Desktop usando Compose

  • Foto do escritor: Rodrigo Saito
    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
Crisção de pasta para o cluster Redis
Crisção de pasta para o cluster Redis

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:


arquivo docker-compose.yml dentro da pasta criada clusterRedis
arquivo docker-compose.yml dentro da pasta criada clusterRedis

Para subir o cluster, digite o comando:

docker compose up -d
Comando para subir o cluster
Comando para subir o cluster

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


Cluster com 6 nós
Cluster com 6 nós

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"

Comando para incluir uma chave e valor
Comando para incluir uma chave e valor
Comando executado depois de ter feito a inserção do chave e valor
Comando executado depois de ter feito a inserção do chave e valor

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


Nunca perca um post. Assine agora!

Caso queira receber noticias sobre o blog, assine!

© 2022 por datalib

  • Ícone do Facebook Cinza
  • Ícone do Linkedin Cinza
bottom of page