Вопрос проверяет знание стратегий управления кэшем и предотвращения его чрезмерного роста.
Можно ограничивать размер кэша и удалять старые записи по принципу LRU (Least Recently Used) или по времени жизни (TTL). Также важно периодически очищать кэш.
Ограничение размера
Хранить максимум N записей.
При превышении удалять самые старые.
Время жизни (TTL)
Каждая запись имеет срок действия.
Удаление устаревших данных при обращении.
Очистка по событиям
Очищать кэш при изменении версии приложения.
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);
}
}Вывод:
Контроль размера и времени жизни кэша предотвращает его переполнение и повышает эффективность.