d. Execução
Reconstrua e suba a stack completa com o Redis:
Verifique se o container redis está rodando junto com todos os outros serviços:
A saída esperada inclui:
NAME STATUS PORTS
store-redis-1 running 0.0.0.0:6379->6379/tcp
store-lb-1 running 0.0.0.0:8080->80/tcp
store-gateway-1 running
store-gateway-2 running
store-gateway-3 running
store-account-1 running
store-account-2 running
store-auth-1 running
store-db-1 running 0.0.0.0:5432->5432/tcp
Verificar o comportamento do cache
Primeira requisição — cache miss
Envie uma requisição para buscar uma conta:
A primeira chamada vai ao banco de dados. Abra uma sessão do Redis CLI e inspecione a chave que foi gravada:
Esperado:
Leia o valor em cache:
Esperado — uma string JSON:
Segunda requisição — cache hit
Envie a mesma requisição novamente:
Confira os logs do serviço — desta vez o banco de dados não deve ser consultado:
Se o cache estiver funcionando, você verá uma linha de log para a primeira requisição, mas nenhuma para a segunda.
Medir a diferença de latência
Use a saída de tempos embutida do curl para comparar os tempos de resposta:
Um resultado típico:
O cache hit é de 10 a 15× mais rápido, porque o Redis responde em < 1 ms e a resposta passa apenas pelo gateway — sem ida e volta ao banco de dados.
Inspecionar a expiração do TTL
Veja quanto tempo falta para uma chave em cache expirar:
Quando o TTL chega a 0, o Redis remove a chave automaticamente. A próxima requisição será um cache miss e o banco de dados será consultado de novo — mantendo o cache eventualmente consistente com o banco.
Monitorar a taxa de acertos do cache
Observe a atividade do cache em tempo real com o comando MONITOR, embutido no Redis (use com cuidado em produção — ele registra todos os comandos):
Envie várias requisições e acompanhe a passagem dos comandos GET (hit ou nil) e SET (miss + armazenamento).
Para estatísticas agregadas, use INFO stats:
Uma taxa de acertos saudável fica acima de 90% em workloads com muitas leituras. Se a taxa de misses estiver alta, considere aumentar o TTL ou pré-aquecer o cache na inicialização.
Pronto! O Redis agora atua como uma camada de cache compartilhada e persistente entre todas as réplicas dos microsserviços. A carga no banco de dados cai na proporção da taxa de acertos do cache, e todas as réplicas do gateway compartilham o mesmo estado de cache, não importa qual instância atenda cada requisição.