Какие знаешь алгоритмы обновления кэша

«Какие знаешь алгоритмы обновления кэша» — вопрос из категории Архитектура, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Наиболее популярные алгоритмы обновления кэша:

  1. LRU (Least Recently Used) – вытесняет редко используемые данные.
    Пример реализации на Go:
    type LRUCache struct {
        capacity int
        cache    map[int]*list.Element
        list     *list.List
    }
  1. LFU (Least Frequently Used) – удаляет элементы с наименьшим количеством обращений.
    Сложнее в реализации, требует подсчёт частоты запросов.

  2. FIFO (First In First Out) – простая очередь, первым удаляется самый старый элемент.

  3. ARC (Adaptive Replacement Cache) – гибрид LRU и LFU, адаптируется под паттерны доступа.

  4. TTL (Time To Live) – автоматическое удаление по истечении времени.

Выбор зависит от сценария: LRU подходит для большинства случаев, LFU – для частотного доступа, TTL – для временных данных.