delete
🧠 O que é
delete remove uma chave específica do cache.
❓ Por que existe
Quando você quer remover uma entrada sem afetar outras.
✅ Quando usar
- Usuário faz logout: remova seu cache.
- Post é deletado: remova do cache.
- Um valor específico fica inválido.
🚫 Quando NÃO usar
- Múltiplas entradas relacionadas: use
invalidateTag(mais eficiente). - Prefixo conhecido: use
invalidatePrefix.
⚡ Exemplo mínimo funcional
const cache = new Cache<string>();
cache.set("msg", "Valor", { ttl: 5_000 });
cache.delete("msg");
const result = cache.get("msg");
console.log(result); // null
🧩 Exemplo real de produção
type Session = { userId: string; token: string };
const sessionCache = new Cache<Session>();
export function deleteUserSession(userId: string) {
sessionCache.delete(`session:${userId}`);
console.log(`Sessão de ${userId} removida`);
}
export async function handleLogout(userId: string) {
await sendLogoutEvent(userId);
deleteUserSession(userId); // Remove cache local
}
⚠️ Erros comuns
1. Usar delete em loop sem validar antes
❌ Errado:
for (let i = 0; i < 10_000; i++) {
cache.delete(`item:${i}`); // Lento se maioria não existe
}
✅ Correto:
cache.invalidatePrefix("item:"); // Remove todas de uma vez
💡 Boas práticas
- Use
deletepara removals isoladas:
cache.delete(`session:${userId}`);
- Use
invalidateTagpara grupos:
// Não:
cache.delete(`post:1`);
cache.delete(`post:2`);
// Sim:
cache.invalidateTag("post");
Ver também
- invalidateTag - Remover grupo por tag
- invalidatePrefix - Remover por prefixo