Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Middle — Senior
4
Потокобезопасный кеш в памяти с временем жизни и автоочисткой
Условие задачи
Необходимо создать потокобезопасный 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 {
}