Sobes.tech
Junior — Senior
49

Локальный кэш для удалённого KV‑хранилища

Условие задачи

Необходимо реализовать локальный кэш, который будет скрытно оборачивать работу с удалённой key‑value базой (ключ — идентификатор пользователя, значение — его IPv4‑адрес). Цель — сократить время доступа (примерно 100 мс) за счёт локального хранения часто запрашиваемых данных. Пользовательский код взаимодействует с базой через прежний интерфейс, не подозревая о наличии кэша; вся логика кэширования должна быть инкапсулирована внутри реализации.

type KVDatabase interface {
  Get(key string) (string, error)
  Keys() ([]string, error)
  MGet(keys []string) ([]*string, error)
}