Что такое 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. Оно не требует настройки внешних сервисов, легко интегрируется и значительно ускоряет приложение. Начните использовать его уже сегодня, добавив всего несколько строк кода.
Также в библиотеке
Работа с XML в C++: библиотеки pugixml, TinyXML-2 и RapidXML
Валидация данных в Go: обзор библиотек и подходов
Отправка SMS через API на Node.js: библиотека twilio
Работа с изображениями в PHP: resize, crop и оптимизация с GD и Imagick
Prometheus метрики в TypeScript: полное руководство по мониторингу