O Redis é rápido, mas consultas frequentes de dados sobrecarregam o servidor de API. Especialmente em casos como dados em tempo real, em que as atualizações são irregulares, mas as consultas precisam ser frequentes, é necessária uma estratégia de cache eficiente.
-
Problema: Redis PubSub ou Keyspace Notification podem tornar a lógica de detecção de atualização e de tratamento de mensagens complexa ou causar desperdício de recursos.
-
Solução: A Invalidation Message, suportada desde o Redis 6.0, é uma abordagem em que o servidor gerencia o cache do cliente.
- Depois que um cliente lê uma chave, se outro cliente a alterar, o Redis envia uma mensagem de atualização para que o cache seja removido.
-
Implementação: Na linguagem Go, é possível aplicar a Invalidation Message usando a combinação redigo+ristretto ou a biblioteca rueidis.
- redigo+ristretto exige lógica customizada, mas o rueidis permite uma implementação simples com a função DoCache.
-
Resultado: Na aplicação real, a velocidade de resposta da API melhorou em até 82%, e a carga no servidor Redis também diminuiu. Embora seja necessário gerenciar o cache do lado do cliente, o ganho de desempenho é significativo.
1 comentários
👀