Escolha o TTL mais curto que ainda faça diferença, depois invalide na escrita apagando ou sobrescrevendo a chave no mesmo caminho que altera a linha. Componha a chave com toda entrada que muda o resultado, incluindo tenant e uma versão de schema. Adicione um lock de execução única para um miss não causar estouro de manada no banco. Aceite desatualização explícita onde ela é inofensiva, e acompanhe a taxa de acerto para saber que aquilo está funcionando.
Por que os entrevistadores perguntam isso
Cache é fácil de adicionar e difícil de manter correto, então o entrevistador quer ver você pensar em invalidação e desenho de chave em vez de só citar o Redis. Ele também está checando os modos de falha: estouro de manada na expiração, chaves que vazam dados entre tenants, e caches que silenciosamente param de acertar depois de um deploy. Medir a taxa de acerto mostra que você notaria quando o cache para de ajudar em silêncio.
Como estruturar sua resposta
- Confirme que o endpoint é pesado de leitura e tolera alguma desatualização.
- Desenhe a chave de cache, incluindo tenant e versão.
- Explique a estratégia de invalidação na escrita.
- Cubra estouro de manada e como você monitoraria a taxa de acerto.
Exemplo de resposta
Antes de adicionar qualquer coisa, eu checo se a query não pode simplesmente ficar rápida, porque um cache na frente de uma query ruim esconde o problema até o cache dar miss no pior momento. Supondo que seja genuinamente pesado de leitura, eu vou de cache aside no Redis. A chave inclui o id do tenant, os parâmetros reais da query, e um prefixo de versão que eu consigo incrementar no deploy para um formato de resposta alterado nunca ser servido de entradas antigas. O TTL é a rede de segurança e não o mecanismo: eu invalido explicitamente na escrita, no mesmo caminho de código que atualiza a linha, então a janela de desatualização é de milissegundos no caso normal. O modo de falha para o qual eu me preparo é o estouro de manada, em que uma chave quente expira e duzentas requisições dão miss e batem no banco de uma vez, então eu uso um lock de execução única e deixo os perdedores esperarem o vencedor. Depois eu exporto a taxa de acerto como métrica, porque um cache que caiu de 95 por cento para 10 depois de uma refatoração passa despercebido até o banco cair.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- O que você guardaria no Redis versus na CDN?
- Como você lidaria com um cache que sai do ar por completo?
- Quando write through é melhor que cache aside aqui?
Mais perguntas para Desenvolvedor Full Stack
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas