13 pontos por lemonmint 2024-11-29 | 1 comentários | Compartilhar no WhatsApp

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

 
jujumilk3 2024-11-29

👀