Локальный кэш
Условие задачи
Нужно разработать локальный кэш, который оборачивает работу с удалённой key-value базой данных (где ключом выступает ID пользователя, а значением — его IPv4-адрес). Основная цель — минимизировать задержки доступа (порядка 100 мс), возникающие из-за удалённого расположения БД. Интерфейс взаимодействия с базой остаётся неизменным — пользователь не должен знать о наличии кэша; логика кэширования должна быть полностью скрыта внутри реализации
gotype KVDatabase interface {
Get(key string) (string, error)
Keys() ([]string, error)
MGet(keys []string) ([]*string, error)
}