Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CUIDADOS AO ADOTAR CACHE EM SISTEMAS DISTRIBUÍDOS

CUIDADOS AO ADOTAR CACHE EM SISTEMAS DISTRIBUÍDOS

Gabriel Feitosa

September 25, 2021
Tweet

More Decks by Gabriel Feitosa

Other Decks in Programming

Transcript

  1. Client side Exemplo: browser do usuário "Para evitar bater na

    API, usa um cache aqui!" CDN Exemplo: Informações estáticas Backend Exemplo: cache de informações de terceiros
  2. There are only two hard things in Computer Science: cache

    invalidation and naming things. -- Phil Karlton https://martinfowler.com/bliki/TwoHardThings.html
  3. Algoritmo O nosso algoritmo pode ser melhorado ou podemos ter

    uma abordagem diferente para essa feature? Antes de usar... Banco de Dados Sempre valide se a query está performática. Adote uso de parâmetros, assim auxiliamos o banco com o parse das queries e evitamos SQL Injections. Pesquise sobre boas práticas. Infra Estamos com os recursos adequados?
  4. local • Cuidado na consistência dos dados em várias instâncias;

    • Pode estar consumindo recursos da aplicação; • Bom para armazenar informações que não se altera com frequência;
  5. TTL Chaves Batch Defina muito bem o time to live.

    Utilize chaves curtas, elas também ocupam espaço Quando for realizar processamento em lote, utilize pipeline Multiargs Quando for necessário pesquisar por várias chaves, utilize os comandos multi argumentos. SlowLog Para identificar queries lentas Storage Se for armazenado menos que 4GB de informações, use redis 32 bits https://redis.io/topics/memory-optimization
  6. OBRIGADO Dúvidas? Consistent Hashing Documentação do Redis Redis Topologies How

    Stack Overflow Caches Apps for a Multi-Tenant Architecture 4 Coisas que todo Arquiteto de Software deve saber antes de utilizar o Redis Código fonte da talk