Как лучше организовать хранение данных для кэша с TTL, включая идентификатор таймера и значение?

Для TTL-кеша удобно хранить по ключу запись с value, expiresAt и при необходимости timerId. При перезаписи старый таймер нужно отменить или обезвредить.

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

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

Для TTL-кеша удобно хранить по ключу запись с value, expiresAt и при необходимости timerId. При перезаписи старый таймер нужно отменить или обезвредить.

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

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

Для TTL-кеша удобно хранить по ключу запись с value, expiresAt и при необходимости timerId. При перезаписи старый таймер нужно отменить или обезвредить.

Callback удаления должен проверить, что запись всё ещё та же, иначе старый таймер удалит новое значение. При get сравнивайте expiresAt с текущим временем: таймеры могут задерживаться. Для большого кеша вместо таймера на каждый ключ рассмотрите периодическую очистку и ограничение размера.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее