lru-cache — программная реализация алгоритма управления кэшем «наименее недавно использованный» (Least Recently Used, LRU) для среды JavaScript/Node.js. Библиотека предоставляет механизм хранения значений с ограничением по объёму (число элементов или суммарный размер) и автоматическим удалением тех записей, к которым длительное время не выполнялись обращения. Целью реализации является уменьшение объёма операций чтения из медленных или дорогостоящих источников данных путём сохранения наиболее активно используемых результатов в оперативной памяти.
Реализация lru-cache обычно сочетает структуру связанного списка для отслеживания порядка использования и хеш-таблицу для обеспечения доступа по ключу за амортизированное константное время. При обращении элемент перемещается в начало списка как самый недавно использованный, при добавлении нового элемента при переполнении удаляется элемент в конце списка — самый давно не использовавшийся. В дополнение к базовой политике LRU многие реализации включают дополнительные опции: максимальный возраст записи (TTL), оценку «веса» элементов для более гибкого ограничения, события при удалении и асинхронную очистку.
- Ограничение вместимости: поддержка лимита по числу элементов или суммарному весу.
 - Быстрый доступ: использование хеш-таблицы для O(1) доступа по ключу.
 - Поддержка порядка использования: двусвязный список или эквивалент для быстрого перемещения элементов.
 - Автоматическое вытеснение: удаление наименее недавно используемых элементов при достижении лимита.
 - TTL/истечение срока: возможность указывать время жизни записи и автоматическое удаление просроченных элементов.
 - Веса элементов: опция учитывать «вес» каждого значения для гибкого ограничения по суммарному объёму.
 - События и колбэки: уведомления при удалении элементов и хуки для кастомной логики очистки.
 - Конфигурируемость: параметры инициализации для настройки политики вытеснения, поведения при обращениях и механизма очистки.