Кеш может бесконтрольно расти, сохранять устаревшие данные и навсегда повторять старую ошибку. Дедупликация одновременных запросов и долговременное кеширование требуют разных правил.
Какой недостаток у кеша без срока жизни и ограничения размера?
Кеш может бесконтрольно расти, сохранять устаревшие данные и навсегда повторять старую ошибку. Дедупликация одновременных запросов и долговременное кеширование требуют разных правил.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Функция загрузки пользователя кеширует Promise в глобальном Map по id навсегда. Повторные вызовы используют тот же Promise, включая rejected. Приложение долго работает в одной вкладке. Какие риски есть у этого решения?
Ответ
Кеш может бесконтрольно расти, сохранять устаревшие данные и навсегда повторять старую ошибку. Дедупликация одновременных запросов и долговременное кеширование требуют разных правил.
Завершённые ошибки удаляют или хранят лишь на оговорённый короткий срок; успешные записи получают TTL, инвалидацию и предел размера. Ключ должен учитывать значимые параметры, включая контекст пользователя, если данные персональные. При logout чувствительный кеш очищают. Политика не должна отменять общий запрос для других подписчиков только потому, что один потребитель ушёл со страницы.