В чем разница между TTL и LRU в кэшировании?

TTL определяет срок действия записи, а LRU выбирает кандидата на вытеснение по давности обращения. Эти механизмы решают разные задачи и могут работать вместе.

Короткий ответ

Что ответить на собеседовании

TTL задает срок действия записи: после его истечения она считается просроченной. LRU при необходимости освободить место вытесняет запись, к которой дольше всего не обращались. LRU учитывает давность, а не частоту использования — за частоту отвечает LFU. TTL и LRU совместимы и сами по себе не обещают автоматическое обновление данных.

Подробный разбор

Ответ с пояснениями

TTL и LRU лучше сравнивать как два разных механизма управления кэшем, а не как взаимоисключающие виды хранилища.

TTL, time to live, задает срок действия записи. После истечения этого срока ее нельзя считать актуальным попаданием в кэш по данной политике. Когда именно освобождается память, зависит от реализации. Например, Redis позволяет задать время истечения ключа через команду EXPIRE.

LRU, least recently used, выбирает запись для вытеснения по давности последнего обращения, обычно когда достигнут лимит вместимости. Это не подсчет популярности за все время: частоту обращений учитывает другая политика — LFU. В документации Redis эти варианты разделены; реализация LRU там использует приближение, а не точный глобальный порядок всех ключей.

Механизмы можно сочетать. У записи есть срок действия, но ее могут вытеснить раньше из-за нехватки места. И наоборот, недавно использованная запись все равно может истечь по TTL, если выбранная политика не продлевает срок при чтении.

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

Ни истечение срока, ни вытеснение сами по себе не гарантируют загрузку свежего значения. Заполнение при промахе, фоновое обновление и защита от одновременного пересчета — отдельные решения. Также TTL не доказывает соответствие источнику: данные могут измениться раньше установленного срока.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку