modulepackage
0.0.0-20191018153134-e43068bb248c
Repository: https://github.com/zullin/volatile-cache.git
Documentation: pkg.go.dev
# README
Написать in-memory хранилище типа “ключ-значение”.
- Хранилище поддерживает операции: PUT, READ, DELETE;
- Хранилище гарантирует thread-safety операции;
- Хранилище поддерживает TTL для ключей;
- Хранилище имеет механизм автоматической очистки истёкших ключей;
- Хранилище общается с клиентом по TCP: 5.1 Создание ключа: должна быть возможность задать название ключа, время жизни, значение; 5.2 Удаление ключа: по названию; 5.3 Чтение ключа: по названию.
- Хранилище умеет хранить только простые строковые значения;
- Хранилище умеет сбрасывать кэш на диск и читать информацию с него.
Операции автоматической очистки и сброса, чтения и вставки желательно реализовать максимально эффективно.
В идеале придумать решение сборки мусора (экспирации ключей по TTL) за оптимальное время (с точки зрения алгоритма). Т.е. подумать, какую структуру данных использовать для кэша.