Аналоги lru-cache

Docker

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Docker — платформа для автоматизации развёртывания, масштабирования и управления приложениями в изолированных контейнерах, обеспечивающая упаковку программного обеспечения со всеми зависимостями в единый переносимый образ, что позволяет запускать его единообразно в различных средах; в контексте кеширования Docker может выступать как инструмент для управления средами выполнения и хранения образов, упрощая воспроизводимость и быстрый разворот сервисов, однако не является специализированной реализацией LRU-кеширования и требует дополнительной конфигурации или внешних компонентов для реализации политик вытеснения объектов по принципу "наименее недавно использованный".

lru-cache

Бесплатно
Открытый исходный код

Сайт: github.com/isaacs/node-lru-cache

lru-cache — программная реализация алгоритма управления кэшем «наименее недавно использованный» (Least Recently Used, LRU) для среды JavaScript/Node.js. Библиотека предоставляет механизм хранения значений с ограничением по объёму (число элементов или суммарный размер) и автоматическим удалением тех записей, к которым длительное время не выполнялись обращения. Целью реализации является уменьшение объёма операций чтения из медленных или дорогостоящих источников данных путём сохранения наиболее активно используемых результатов в оперативной памяти.

Реализация lru-cache обычно сочетает структуру связанного списка для отслеживания порядка использования и хеш-таблицу для обеспечения доступа по ключу за амортизированное константное время. При обращении элемент перемещается в начало списка как самый недавно использованный, при добавлении нового элемента при переполнении удаляется элемент в конце списка — самый давно не использовавшийся. В дополнение к базовой политике LRU многие реализации включают дополнительные опции: максимальный возраст записи (TTL), оценку «веса» элементов для более гибкого ограничения, события при удалении и асинхронную очистку.

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