Cache em memória rápido e concorrente para Go, com remoção de entradas e baixo impacto no GC, mesmo ao armazenar um grande volume de itens no heap.
isaacs/node-lru-cache
Um cache LRU em JavaScript que remove os itens menos usados recentemente ao atingir o limite configurado de quantidade, tamanho ou TTL.
- Estrelas
- 5,918
- Forks
- 380
- Issues abertas
- 15
- Último commit
- mês passado
O que é?
lru-cache é um objeto de cache em JavaScript que mantém uma quantidade definida de itens acessados mais recentemente e remove os menos usados quando novas entradas ultrapassam o limite. Funciona no Node.js e em navegadores, e pode ser instalado pelo npm.
Além da remoção LRU básica, o cache oferece limites opcionais para o tamanho total armazenado, usando uma função de cálculo de tamanho; expiração por TTL por entrada ou para o cache inteiro; um callback dispose para limpar itens removidos; e um método fetch assíncrono com comportamento stale-while-revalidate. Chaves que não são strings são aceitas com base na identidade do objeto. A biblioteca é principalmente um cache LRU, não um cache de TTL, e não remove proativamente os itens expirados, a menos que isso seja configurado.
O pacote fornece tipos TypeScript, instrumentação pelo diagnostics channel nas plataformas compatíveis e uma seção documentada sobre desempenho que compara as vantagens e desvantagens em relação a alternativas mais simples.
Recursos principais
- 01Remove as entradas menos usadas recentemente quando a quantidade máxima é excedida.
- 02Permite limitar o tamanho total armazenado usando um cálculo de tamanho personalizado.
- 03Oferece expiração opcional por TTL para o cache inteiro ou para entradas individuais.
- 04Disponibiliza um callback dispose para limpar os itens removidos.
- 05Inclui um método fetch assíncrono com suporte a stale-while-revalidate.
- 06Inclui tipos TypeScript.
Casos de uso
- Armazenar em cache resultados de computações caras ou chamadas de API em um serviço Node.js.
- Limitar o uso de memória de um cache no processo pelo tamanho total das entradas.
- Armazenar dados obtidos em cache em um app de navegador com uso de memória limitado.
Início rápido
- 1
Instale o pacote com npm
npm install lru-cache --save - 2
Importe LRUCache e crie um cache com tamanho máximo
Antes de usar
- Não é principalmente um cache TTL; por padrão, os itens expirados não são removidos preventivamente.
- As operações set são um pouco mais lentas do que em algumas alternativas, e o README recomenda evitar dispose, o rastreamento de tamanho e os recursos TTL, a menos que sejam necessários.
Tópicos
Perguntas frequentes
- O que é node-lru-cache?
- Um cache LRU em JavaScript que remove os itens menos usados recentemente ao atingir o limite configurado de quantidade, tamanho ou TTL. lru-cache é um objeto de cache em JavaScript que mantém uma quantidade definida de itens acessados mais recentemente e remove os menos usados quando novas entradas ultrapassam o limite. Funciona no Node.js e em navegadores, e pode ser instalado pelo npm.
- node-lru-cache é gratuito? Qual é a licença?
- node-lru-cache é open source sob a licença BlueOak-1.0.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- node-lru-cache ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de node-lru-cache foi em 18 de set. de 2026.
- Para que posso usar node-lru-cache?
- Armazenar em cache resultados de computações caras ou chamadas de API em um serviço Node.js. Limitar o uso de memória de um cache no processo pelo tamanho total das entradas. Armazenar dados obtidos em cache em um app de navegador com uso de memória limitado.
- Como instalar node-lru-cache?
- Instale o pacote com npm: npm install lru-cache --save Importe LRUCache e crie um cache com tamanho máximo
- Onde consigo node-lru-cache?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/isaacs/node-lru-cache
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca de gerenciamento de estado assíncrono e busca de dados para apps web, com integrações para React, Vue, Svelte e Solid.
Um armazenamento de dados em memória usado como cache, servidor de estruturas de dados, repositório de documentos e vetores e broker de mensagens.
Sistema Swift de carregamento de imagens para plataformas Apple, com cache, processamento, decodificação progressiva e componentes para SwiftUI/UIKit.
HAProxy é um proxy reverso e balanceador de carga gratuito e rápido para aplicações TCP e HTTP, que oferece alta disponibilidade e distribuição de tráfego.
Biblioteca de utilitários em Python puro, com mais de 230 recursos que ampliam a biblioteca padrão e sem dependências.