Caché en TypeScript: biblioteca node-cache

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 y para qué sirve?

La librería node-cache es un sistema de caché simple y rápido para Node.js, escrito en TypeScript. Permite almacenar datos en memoria (in-memory cache), lo que acelera significativamente el acceso a información solicitada con frecuencia (por ejemplo, resultados de consultas a bases de datos, respuestas de API, cálculos). En TypeScript, node-cache proporciona una tipificación estricta, lo que hace que el código sea más predecible y seguro.

El almacenamiento en caché es necesario para reducir la carga en el servidor, disminuir el tiempo de respuesta y ahorrar recursos en operaciones repetitivas. Node-cache es ideal para proyectos pequeños y medianos donde no se requiere un caché distribuido (como Redis), pero se necesita un caché ligero en memoria.

Instalación

Instale el paquete a través de npm o yarn:

npm install node-cache
# o
yarn add node-cache

Para TypeScript, los tipos ya están incluidos en el paquete, no es necesario instalar @types adicionalmente.

Funciones principales

  • set(key, value, ttl) — guarda un valor por clave con un tiempo de vida opcional (TTL) en segundos.
  • get(key) — obtiene el valor por clave. Devuelve undefined si la clave no existe o ha expirado.
  • del(key) — elimina una o varias claves.
  • has(key) — verifica si una clave existe en el caché.
  • flushAll() — limpia todo el caché.
  • getStats() — devuelve estadísticas (número de claves, aciertos, fallos).

Ejemplo de código en TypeScript

import NodeCache from 'node-cache';

// Creamos una instancia de caché con TTL predeterminado de 60 segundos
const myCache = new NodeCache({ stdTTL: 60 });

// Valor tipificado
interface User {
id: number;
name: string;
}

// Guardamos datos
const user: User = { id: 1, name: 'Alice' };
myCache.set('user_1', user);

// Obtenemos datos
const cachedUser = myCache.get<User>('user_1');
if (cachedUser) {
console.log(cachedUser.name); // Alice
} else {
console.log('El caché está vacío');
}

// Verificación de existencia
console.log(myCache.has('user_1')); // true

// Eliminación
myCache.del('user_1');

// Limpieza total del caché
myCache.flushAll();

Cuándo usar node-cache

  • Datos solicitados con frecuencia: por ejemplo, lista de países, tipos de cambio, configuraciones.
  • Resultados de cálculos pesados: almacenar en caché el resultado de una operación costosa durante unos segundos.
  • Puertas de enlace de API: almacenar en caché las respuestas de API externas para reducir latencias y límites.
  • Sesiones: almacenamiento temporal de datos de sesión (si no se requiere persistencia).

Evite node-cache si necesita un caché distribuido entre varios servidores; en ese caso, es mejor usar Redis. Tampoco es adecuado para grandes volúmenes de datos (más de 1-2 GB), ya que se almacena en la memoria RAM.

Node-cache es una excelente opción para escenarios simples de almacenamiento en caché en TypeScript, donde la velocidad y la configuración mínima son importantes.

Recommendations