Назад к задачам
Middle — Senior
4

Потокобезопасный кеш в памяти с временем жизни и автоочисткой

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

Необходимо создать потокобезопасный in‑memory кеш, реализующий интерфейс Cacher. Кеш должен хранить элементы с заданным временем жизни (TTL) и самостоятельно удалять просроченные записи посредством сборки мусора. Требуется поддержка следующих операций:

  • Set(key string, value any) — добавить или обновить значение по ключу.
  • Get(k string) (any, bool) — получить значение, проверив, не истёк ли его TTL.
type Cacher interface {
    Set(key string, value any)
    Get(k string) (any, bool)
}

func NewCacher(duration time.Duration) Cacher {
    
}