Cache Redis: como implementar passo a passo
Implementar cache Redis melhora a resposta da aplicação ao evitar consultas repetidas ao banco. Veja o passo a passo prático, desde a instalação até a validação do cache.
Implementar cache Redis melhora a resposta da aplicação ao evitar consultas repetidas ao banco. Veja o passo a passo prático, desde a instalação até a validação do cache.
Implementar cache Redis reduz o tempo de resposta da sua aplicação ao guardar em memória dados acessados com frequência, evitando consultas repetidas ao banco. Este guia mostra o caminho direto, da instalação à validação do cache funcionando, com dicas para não cair nas armadilhas mais comuns.
Pré-requisitos: você precisa de um servidor com Redis instalado (ou um serviço gerenciado) e acesso ao código da aplicação que vai usar o cache. Conhecimento básico da linguagem usada no projeto ajuda, mas não é obrigatório para entender o fluxo.
Passo 1: Instale e inicie o Redis
O Redis roda como um processo separado da sua aplicação. Em ambientes Linux, instale com o gerenciador de pacotes da distribuição (por exemplo, apt install redis no Ubuntu). Depois de instalar, inicie o serviço com systemctl start redis ou execute o binário redis-server diretamente no terminal.
Erro comum: esquecer de habilitar o Redis para iniciar junto com o sistema. Sem isso, após um reboot, o cache fica fora do ar e a aplicação pode falhar (ou pior, cair sem aviso). Configure o serviço para iniciar automaticamente.
Passo 2: Configure a conexão no seu código
A aplicação precisa de um cliente Redis. Quase toda linguagem tem uma biblioteca oficial ou amplamente usada: redis-py para Python, ioredis para Node.js, jedis para Java. A configuração básica exige o endereço do servidor (host) e a porta padrão, que é 6379.
Dica: se o Redis estiver em outra máquina, defina um timeout de conexão curto (2 a 3 segundos). Assim, se o cache estiver indisponível, a aplicação não fica travada esperando uma resposta que não vem.
Passo 3: Defina a política de expiração (TTL)
Cache não é armazenamento permanente. Cada chave deve ter um tempo de vida (TTL, do inglês Time To Live). Por exemplo, um perfil de usuário pode expirar em 10 minutos; uma lista de produtos, em 1 hora. Use SET chave valor EX 600 para expirar em 600 segundos.
Erro comum: não definir TTL e acumular chaves infinitamente. Isso transforma o Redis em um depósito de memória e degrada a performance, além de custar mais caro em serviços gerenciados.
Passo 4: Use o cache no fluxo da aplicação
O padrão mais comum é o cache-aside: primeiro, a aplicação consulta o Redis. Se a chave existir (cache hit), usa o valor diretamente. Se não existir (cache miss), busca no banco, armazena no Redis com TTL e retorna a resposta.
valor = GET chave se valor é nulo: valor = busca_no_banco() SET chave valor EX 600 retorna valor
Dica: serialize os dados antes de guardar. Use JSON ou o formato nativo da sua linguagem. Objetos complexos viram strings no Redis, e desserializar na leitura é parte do processo.
Passo 5: Invalide o cache quando os dados mudarem
Quando um dado é atualizado ou removido no banco, o cache correspondente precisa ser atualizado ou apagado. Use DEL chave para remover a entrada obsoleta, ou reescreva com o novo valor. Sem isso, a aplicação serve dados velhos até o TTL expirar.
Erro comum: invalidar apenas no momento da escrita. Em sistemas com múltiplas instâncias, um dado pode ser alterado por outra parte do código. Centralize a lógica de invalidação em uma função ou serviço dedicado.
Passo 6: Valide o funcionamento
Para testar, use o utilitário de linha de comando redis-cli. Execute MONITOR para ver os comandos chegando em tempo real, ou GET chave para conferir se o valor foi armazenado. Na aplicação, meça o tempo de resposta antes e depois de ativar o cache.
Dica: monitore a taxa de cache hit (acertos) e cache miss (erros). Uma taxa de acertos abaixo de 80% pode indicar TTL muito curto ou chaves com baixa frequência de acesso.
Checklist do que foi feito
- Redis instalado e rodando como serviço.
- Cliente Redis configurado na aplicação com timeout curto.
- TTL definido para cada tipo de chave.
- Fluxo cache-aside implementado (consulta, armazenamento, retorno).
- Invalidação de cache em operações de escrita.
- Teste com
redis-clie monitoramento da taxa de acertos.
Perguntas frequentes sobre cache Redis
O que é cache Redis e para que serve?
Cache Redis é um armazenamento em memória que guarda dados temporários para acelerar o acesso. Ele serve para reduzir a latência de respostas e aliviar a carga do banco de dados, guardando resultados de consultas frequentes ou sessões de usuário.
Qual a diferença entre Redis e cache de aplicação?
O cache de aplicação vive dentro do processo da sua aplicação e some quando ela reinicia. O Redis roda como um serviço separado, podendo ser compartilhado entre várias instâncias, o que o torna uma solução distribuída e mais resiliente.
Quando devo usar cache Redis?
Use quando houver dados lidos muitas vezes e que mudam com pouca frequência, como listas de produtos, perfis de usuário ou configurações. Se o dado muda a cada requisição, o cache não ajuda e pode até atrapalhar.
O que é TTL no Redis?
TTL (Time To Live) é o tempo, em segundos, que uma chave permanece válida no Redis. Após esse período, a chave é removida automaticamente. Definir TTL evita acúmulo de dados obsoletos e controla o uso de memória.
Como invalidar um cache Redis?
Para invalidar, use o comando DEL seguido da chave que deve ser removida. Também é possível sobrescrever com um novo valor usando SET. A invalidação manual é necessária quando os dados do banco mudam antes do TTL expirar.
O que é cache hit e cache miss?
Cache hit é quando a aplicação encontra o dado no Redis e não precisa consultar o banco. Cache miss é quando o dado não está no cache, forçando uma consulta ao banco e um novo armazenamento. A taxa de hits indica a eficiência do cache.
Próximo passo prático: implemente o fluxo cache-aside em uma rota de leitura da sua aplicação. Comece por um endpoint que consulta o banco com frequência e meça a diferença no tempo de resposta antes e depois do cache. O ganho costuma aparecer na primeira execução.