node-cache: Caché simple y eficiente en Node.js

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es node-cache?

node-cache es una biblioteca ligera para el almacenamiento en caché interno de datos en aplicaciones Node.js. Funciona como un almacén en memoria (in-memory store), permitiendo guardar temporalmente resultados de cálculos, respuestas de API o datos de bases de datos para no tener que realizar operaciones pesadas repetidamente.

¿Por qué es necesario el almacenamiento en caché en JavaScript?

El almacenamiento en caché es crítico para el rendimiento. Sin él, cada solicitud al servidor puede provocar llamadas repetidas a servicios externos, consultas a la base de datos o cálculos complejos. node-cache resuelve este problema almacenando datos en memoria con un tiempo de vida (TTL) definido. Esto reduce la carga en el servidor y acorta el tiempo de respuesta entre 2 y 5 veces para los datos solicitados con frecuencia.

Instalación

Para instalar la biblioteca, ejecute el siguiente comando en la raíz de su proyecto:

npm install node-cache

Después de la instalación, importe el módulo en su código:

const NodeCache = require('node-cache');

Funciones principales

  • set(key, value, [ttl]) — guarda un valor bajo una clave con un tiempo de vida opcional en segundos.
  • get(key) — devuelve el valor almacenado o undefined si la clave no se encuentra o ha expirado.
  • has(key) — verifica la existencia de una clave (devuelve true/false).
  • del(key) — elimina una o varias claves.
  • flushAll() — limpia toda la caché.
  • keys() — devuelve un array de todas las claves activas.
  • getStats() — estadísticas: hits, misses, keys, ksize y vsize.

Ejemplo de código en Node.js

const NodeCache = require('node-cache');const myCache = new NodeCache({ stdTTL: 600, checkperiod: 120 });

// Guardamos datosmyCache.set('user_123', { name: 'Alice', role: 'admin' }, 300);

// Recuperamosconst user = myCache.get('user_123');if (user === undefined) { console.log('Caché vacía, consultando desde la BD');} else { console.log('Datos desde la caché:', user);}

// Estadísticasconsole.log(myCache.getStats());// { hits: 1, misses: 0, keys: 1, ksize: 8, vsize: 32 }

¿Cuándo usar node-cache?

La biblioteca es ideal para:

  • Almacenar en caché respuestas de API — evite solicitudes repetidas a servicios externos (por ejemplo, clima, tipos de cambio).
  • Resultados de cálculos pesados — guarde el resultado del procesamiento de datos durante 5–10 minutos.
  • Datos de sesión — almacenamiento temporal de tokens o configuraciones de usuario.
  • Caché intermedia entre microservicios — reducción de llamadas de red.

Importante: node-cache no es adecuado para sistemas distribuidos (solo funciona en la memoria de un solo proceso). Para caché distribuida, use Redis o Memcached.

Conclusión

node-cache es una solución minimalista y confiable para el almacenamiento en caché en memoria (in-memory) en Node.js. No requiere configuración de servicios externos, se integra fácilmente y acelera significativamente la aplicación. Empiece a usarlo hoy mismo añadiendo solo unas pocas líneas de código.

Recommendations