Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: cache, lru, ttl

Как избежать переполнения кэша?

Вопрос проверяет знание стратегий управления кэшем и предотвращения его чрезмерного роста.

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

Можно ограничивать размер кэша и удалять старые записи по принципу LRU (Least Recently Used) или по времени жизни (TTL). Также важно периодически очищать кэш.

Длинный ответ

Стратегии:

  1. Ограничение размера

    • Хранить максимум N записей.

    • При превышении удалять самые старые.

  2. Время жизни (TTL)

    • Каждая запись имеет срок действия.

    • Удаление устаревших данных при обращении.

  3. Очистка по событиям

    • Очищать кэш при изменении версии приложения.

Пример LRU-кэша:

class LRUCache {
  constructor(limit) {
    this.limit = limit;
    this.map = new Map();
  }
  get(key) {
    if (!this.map.has(key)) return null;
    const value = this.map.get(key);
    this.map.delete(key);
    this.map.set(key, value);
    return value;
  }
  set(key, value) {
    if (this.map.size >= this.limit) {
      const oldest = this.map.keys().next().value;
      this.map.delete(oldest);
    }
    this.map.set(key, value);
  }
}

Вывод:
Контроль размера и времени жизни кэша предотвращает его переполнение и повышает эффективность.

Уровень

  • Рейтинг:

    1

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#cache

#lru

#ttl

Подпишись на React Developer в телеграм