node-cache: Простое и эффективное кэширование в Node.js

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Что такое node-cache?

node-cache — это легковесная библиотека для внутреннего кэширования данных в приложениях на Node.js. Она работает как in-memory store (хранилище в оперативной памяти), позволяя временно сохранять результаты вычислений, ответы от API или данные из базы данных, чтобы не выполнять тяжелые операции повторно.

Зачем нужно кэширование в JavaScript?

Кэширование критически важно для производительности. Без него каждый запрос к серверу может приводить к повторным вызовам внешних сервисов, запросам к БД или сложным вычислениям. node-cache решает эту проблему, сохраняя данные в памяти с заданным временем жизни (TTL). Это снижает нагрузку на сервер и сокращает время ответа в 2–5 раз для часто запрашиваемых данных.

Установка

Для установки библиотеки выполните команду в корне вашего проекта:

npm install node-cache

После установки подключите модуль в коде:

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

Основные функции

  • set(key, value, [ttl]) — сохраняет значение по ключу с опциональным временем жизни в секундах.
  • get(key) — возвращает сохраненное значение или undefined, если ключ не найден или истек срок.
  • has(key) — проверяет существование ключа (возвращает true/false).
  • del(key) — удаляет один или несколько ключей.
  • flushAll() — очищает весь кэш.
  • keys() — возвращает массив всех активных ключей.
  • getStats() — статистика: hits, misses, keys, ksize и vsize.

Пример кода на Node.js

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

// Сохраняем данные
myCache.set('user_123', { name: 'Alice', role: 'admin' }, 300);

// Извлекаем
const user = myCache.get('user_123');
if (user === undefined) {
  console.log('Кэш пуст, запрашиваем из БД');
} else {
  console.log('Данные из кэша:', user);
}

// Статистика
console.log(myCache.getStats());
// { hits: 1, misses: 0, keys: 1, ksize: 8, vsize: 32 }

Когда использовать node-cache?

Библиотека идеальна для:

  • Кэширования ответов API — избегайте повторных запросов к внешним сервисам (например, погода, курсы валют).
  • Результатов тяжелых вычислений — сохраняйте результат обработки данных на 5–10 минут.
  • Сессионных данных — временное хранение токенов или настроек пользователя.
  • Промежуточного кэша между микросервисами — уменьшение сетевых вызовов.

Важно: node-cache не подходит для распределенных систем (работает только в памяти одного процесса). Для распределенного кэша используйте Redis или Memcached.

Заключение

node-cache — это минималистичное и надежное решение для in-memory кэширования в Node.js. Оно не требует настройки внешних сервисов, легко интегрируется и значительно ускоряет приложение. Начните использовать его уже сегодня, добавив всего несколько строк кода.

Рекомендаций