b. Docker Compose
Adicione o serviço redis ao compose.yaml e exponha o hostname do Redis para cada microsserviço por meio de variáveis de ambiente.
Adicionar o Redis
redis:
image: redis:7-alpine
hostname: redis
ports:
- 6379:6379
volumes:
- redis_data:/data
command: redis-server --appendonly yes
A flag --appendonly yes habilita o modo de persistência AOF: cada escrita é registrada em disco, de modo que os dados em cache sobrevivem a um reinício do container do Redis.
Adicione o volume nomeado no final do compose.yaml:
Conectar os microsserviços ao Redis
Cada microsserviço que usa o cache precisa saber onde o Redis está rodando. Passe os dados de conexão como variáveis de ambiente:
account:
build:
context: ./account-service
dockerfile: Dockerfile
hostname: account
environment:
DATABASE_HOST: db
DATABASE_PORT: 5432
DATABASE_DB: ${DB_NAME:-store}
DATABASE_USERNAME: ${DB_USER:-store}
DATABASE_PASSWORD: ${DB_PASSWORD:-devpass}
REDIS_HOST: redis
REDIS_PORT: 6379
deploy:
replicas: 2
depends_on:
- db
- redis
Aplique as mesmas variáveis REDIS_HOST e REDIS_PORT a qualquer outro serviço que leia ou escreva no cache (por exemplo, auth).
compose.yaml completo
Exposição da porta do Redis
A porta 6379 é publicada no host por conveniência durante o desenvolvimento — isso permite inspecionar o Redis diretamente com o redis-cli a partir da sua máquina. Em produção, remova esse mapeamento ports para que o Redis só seja acessível de dentro da rede Docker.