Быстрый конкурентный in-memory кэш с вытеснением для Go: хранит множество записей в куче и снижает нагрузку на GC.
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
Установите пакет с помощью npm
npm install lru-cache --save - 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 обновляется ежедневно.
Похожие проекты
Библиотека для управления асинхронным состоянием и загрузки данных в веб-приложениях с поддержкой React, Vue, Svelte и Solid.
Хранилище данных в памяти для кэширования, работы со структурами данных и документами, векторного поиска и обмена сообщениями.
Система загрузки изображений на Swift для платформ Apple с кэшированием, обработкой, прогрессивным декодированием и компонентами для SwiftUI и UIKit.
HAProxy — бесплатный и быстрый reverse proxy и балансировщик нагрузки для TCP- и HTTP-приложений, обеспечивающий высокую доступность и распределение трафика.
Библиотека из более чем 230 утилит на чистом Python, расширяющих стандартную библиотеку и не имеющих внешних зависимостей.