Назад к задачам
Junior — Senior
12

Самодельный потокобезопасный кэш с LRU‑очисткой

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо создать упрощённую реализацию сервиса, аналогичного Redis, которая будет работать в многопоточной среде. Реализация должна обеспечивать безопасный конкурентный доступ к хранимым данным и включать механизм LRU (Least Recently Used) для автоматического удаления наименее часто используемых записей.

type ThreadSafeCache interface {
    Get(key string) (result string)
    Set(key, value string)
}

Для обеспечения потокобезопасности следует использовать синхронизацию (например, mutex’ы) и продумать стратегию обновления порядка использования элементов, чтобы корректно работать с LRU‑политикой при одновременных запросах.