Repolode
isaacs

isaacs/node-lru-cache

JavaScript LRU-кэш, который удаляет давно не использовавшиеся элементы при достижении заданного лимита по количеству, размеру или TTL.

Звёзды
5,918
Форки
380
Открытые issues
15
Последний коммит
в прошлом месяце

Что это?

lru-cache — это объект-кэш на JavaScript, который хранит заданное количество недавно использованных элементов и удаляет самые давно не использовавшиеся, когда новые записи превышают установленный лимит. Он работает в Node.js и браузерах и устанавливается через npm.

Помимо базового вытеснения по алгоритму LRU, кэш поддерживает необязательные ограничения на общий размер хранилища с помощью функции расчёта размера, истечение TTL для отдельных записей или всего кэша, callback dispose для очистки при удалении элементов, а также асинхронный метод fetch с поведением stale-while-revalidate. Ключи нестрокового типа сравниваются по идентичности объектов. Библиотека предназначена прежде всего для кэширования по алгоритму LRU, а не для кэширования с TTL, и не удаляет просроченные элементы заранее, если это не настроено отдельно.

В пакет входят типы TypeScript, инструментирование через diagnostics channel на поддерживаемых платформах и раздел с описанием производительности и сравнением компромиссов с более простыми альтернативами.

Ключевые возможности

  • 01Удаляет давно не использовавшиеся записи при превышении максимального количества.
  • 02Поддерживает ограничения на общий размер хранилища с помощью пользовательской функции расчёта размера.
  • 03Поддерживает необязательное истечение TTL для всего кэша или отдельных записей.
  • 04Предоставляет callback dispose для очистки удалённых элементов.
  • 05Содержит асинхронный метод fetch с поддержкой stale-while-revalidate.
  • 06Включает типы TypeScript.

Сценарии использования

  • Кэширование результатов ресурсоёмких вычислений или API-вызовов в сервисе на Node.js.
  • Ограничение потребления памяти внутрипроцессным кэшем по общему размеру записей.
  • Кэширование полученных данных в браузерном приложении с ограниченным объёмом памяти.

Быстрый старт

  1. 1

    Установите пакет с помощью npm

    npm install lru-cache --save
  2. 2

    Импортируйте LRUCache и создайте кэш с максимальным размером

Что важно знать

  • Это не кэш, предназначенный в первую очередь для TTL; по умолчанию просроченные элементы не удаляются заранее.
  • Операции set несколько медленнее, чем у некоторых альтернатив, а в README рекомендуется не использовать dispose, отслеживание размера и функции TTL без необходимости.

Темы

Частые вопросы

Что такое node-lru-cache?
JavaScript LRU-кэш, который удаляет давно не использовавшиеся элементы при достижении заданного лимита по количеству, размеру или TTL. lru-cache — это объект-кэш на JavaScript, который хранит заданное количество недавно использованных элементов и удаляет самые давно не использовавшиеся, когда новые записи превышают установленный лимит. Он работает в Node.js и браузерах и устанавливается через npm.
node-lru-cache можно использовать бесплатно? Какая у него лицензия?
node-lru-cache распространяется с открытым исходным кодом под лицензией BlueOak-1.0.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
node-lru-cache всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в node-lru-cache — 18 сент. 2026 г..
Для чего можно использовать node-lru-cache?
Кэширование результатов ресурсоёмких вычислений или API-вызовов в сервисе на Node.js. Ограничение потребления памяти внутрипроцессным кэшем по общему размеру записей. Кэширование полученных данных в браузерном приложении с ограниченным объёмом памяти.
Как установить node-lru-cache?
Установите пакет с помощью npm: npm install lru-cache --save Импортируйте LRUCache и создайте кэш с максимальным размером
Где скачать node-lru-cache?
Исходный код и инструкции по установке — на GitHub: https://github.com/isaacs/node-lru-cache

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты