Caché en memoria rápida, concurrente y con expulsión para Go, que almacena muchísimas entradas en el heap con poca carga para el GC.
isaacs/node-lru-cache
Caché LRU en JavaScript que expulsa los elementos menos usados recientemente al alcanzar el límite configurado de cantidad, tamaño o TTL.
- Estrellas
- 5,918
- Forks
- 380
- Issues abiertos
- 15
- Último commit
- el mes pasado
¿Qué es?
lru-cache es un objeto de caché para JavaScript que conserva una cantidad determinada de los elementos consultados más recientemente y elimina los menos usados cuando las nuevas entradas superan el límite. Funciona en Node.js y en navegadores web, y se puede instalar desde npm.
Además de la expulsión LRU básica, la caché admite límites opcionales al tamaño total almacenado mediante una función de cálculo del tamaño, expiración TTL por entrada o para toda la caché, una función de callback dispose para limpiar los elementos expulsados y un método async fetch con el comportamiento stale-while-revalidate. Admite claves que no sean cadenas mediante identidad de objeto. La biblioteca está pensada principalmente como una caché LRU, no como una caché TTL, y no elimina de forma proactiva los elementos expirados salvo que se configure para hacerlo.
El paquete incluye tipos de TypeScript, instrumentación de diagnostics channel en las plataformas compatibles y una sección de rendimiento documentada que compara las ventajas y desventajas frente a alternativas más sencillas.
Funciones clave
- 01Expulsa las entradas menos usadas recientemente cuando se supera la cantidad máxima.
- 02Admite límites al tamaño total almacenado mediante un cálculo de tamaño personalizado.
- 03Ofrece expiración TTL opcional para toda la caché o para entradas individuales.
- 04Proporciona una función de callback dispose para limpiar los elementos expulsados.
- 05Incluye un método async fetch con compatibilidad para stale-while-revalidate.
- 06Incluye tipos de TypeScript.
Casos de uso
- Almacenar en caché los resultados de cálculos costosos o llamadas a API en un servicio Node.js.
- Limitar el uso de memoria de una caché en proceso según el tamaño total de las entradas.
- Almacenar datos obtenidos en una aplicación web con memoria limitada.
Inicio rápido
- 1
Instala el paquete con npm
npm install lru-cache --save - 2
Importa LRUCache y crea una caché con un tamaño máximo
Antes de usarlo
- No está pensado principalmente como caché TTL; de forma predeterminada, los elementos caducados no se eliminan de antemano.
- Las operaciones set son algo más lentas que en algunas alternativas, y el README recomienda evitar dispose, el seguimiento del tamaño y las funciones TTL salvo que sean necesarios.
Temas
Preguntas frecuentes
- ¿Qué es node-lru-cache?
- Caché LRU en JavaScript que expulsa los elementos menos usados recientemente al alcanzar el límite configurado de cantidad, tamaño o TTL. lru-cache es un objeto de caché para JavaScript que conserva una cantidad determinada de los elementos consultados más recientemente y elimina los menos usados cuando las nuevas entradas superan el límite. Funciona en Node.js y en navegadores web, y se puede instalar desde npm.
- ¿node-lru-cache es gratuito? ¿Qué licencia tiene?
- node-lru-cache es open source bajo la licencia BlueOak-1.0.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿node-lru-cache sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de node-lru-cache fue el 18 sept 2026.
- ¿Para qué puedo usar node-lru-cache?
- Almacenar en caché los resultados de cálculos costosos o llamadas a API en un servicio Node.js. Limitar el uso de memoria de una caché en proceso según el tamaño total de las entradas. Almacenar datos obtenidos en una aplicación web con memoria limitada.
- ¿Cómo se instala node-lru-cache?
- Instala el paquete con npm: npm install lru-cache --save Importa LRUCache y crea una caché con un tamaño máximo
- ¿Dónde consigo node-lru-cache?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/isaacs/node-lru-cache
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de gestión de estado asíncrono y obtención de datos para aplicaciones web, con bindings para React, Vue, Svelte y Solid.
Almacén de datos en memoria que se usa como caché, servidor de estructuras de datos, almacén de documentos, base de datos vectorial y agente de mensajería.
Sistema de carga de imágenes en Swift para plataformas Apple, con caché, procesamiento, decodificación progresiva y componentes para SwiftUI y UIKit.
HAProxy es un proxy inverso y balanceador de carga gratuito y rápido para aplicaciones TCP y HTTP, que ofrece alta disponibilidad y distribuye el tráfico.
Biblioteca de utilidades en Python puro con más de 230 herramientas que amplían la biblioteca estándar, sin dependencias.