Go cache test task
Необходимо реализовать пакет кэшей ключ-значение.
Можно создавать сколько угодно кэшей. В каждом можно указывать интервалы чистки, время хранения пар (ключ-значение) по умолчанию.
Пакет должен позволять:
- Создать новый кэш;
- Получить список созданных кэшей;
- Удалить кэш.
У кэша должен быть уникальный id, по которому к нему можно обращаться.
У кэша должны быть методы:
- ADD — добавляет в кэш пару ключ-значение. Если существовал, то ошибка. Позволяет установить произвольное время хранения пары;
- SET — добавляет в кэш пару ключ-значение. Если существовала, то перезаписывает значение. Позволяет установить произвольное время хранения пары;
- UPDATE — обновляет значение по ключу. Также позволяет установить новое время хранения пары;
- GET — получить список значение по ключам. Ключей любое количество.
Значения в кэше могут быть любые.
Кэш должен быть concurrent safe.
make test
— run test
make cover
— run test with code cover
- Перевести Garbage на LRU