devterview_$ iniciar simulação

Quando a memória enche: políticas de eviction

MédioPlenoMemória

Pergunta

O que acontece quando o Redis atinge `maxmemory`, e qual política de eviction escolher pra um cache?

Resposta esperada

Ao bater `maxmemory`, o comportamento depende da política: `noeviction` (padrão) — writes passam a FALHAR com erro, leituras continuam (ruim pra cache: seu app começa a receber erro ao gravar); `allkeys-lru` — remove as chaves menos recentemente usadas, entre TODAS (a escolha típica pra um cache puro); `allkeys-lfu` — menos FREQUENTEMENTE usadas (melhor quando há chaves 'quentes' estáveis); `volatile-lru`/`volatile-ttl` — só removem chaves que TÊM TTL definido (pra quando o Redis guarda cache E dados persistentes na mesma instância — separar seria melhor). Pra um cache dedicado: `allkeys-lru` ou `allkeys-lfu` + `maxmemory` setado com folga pro overhead. E monitorar `evicted_keys`: eviction alto e constante = a instância está pequena pro working set, e o hit rate cai.

Por que perguntam isso

Pergunta pleno de Redis. Sinal bom: 'noeviction faz o app receber erro ao gravar' e monitorar `evicted_keys`.

#eviction#maxmemory#lru#lfu
publicidade

Relacionadas