b. Docker Compose
Adicione o serviço redis ao compose.yaml e informe o hostname do Redis a 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: toda 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 — ela permite a inspeção direta com redis-cli a partir da sua máquina. Em produção, remova esse mapeamento de ports para que o Redis seja acessível apenas de dentro da rede Docker.