Skip to content

Latest commit

 

History

History
16 lines (13 loc) · 1.51 KB

README.md

File metadata and controls

16 lines (13 loc) · 1.51 KB

Написать in-memory хранилище типа “ключ-значение”.

  1. Хранилище поддерживает операции: PUT, READ, DELETE;
  2. Хранилище гарантирует thread-safety операции;
  3. Хранилище поддерживает TTL для ключей;
  4. Хранилище имеет механизм автоматической очистки истёкших ключей;
  5. Хранилище общается с клиентом по TCP: 5.1 Создание ключа: должна быть возможность задать название ключа, время жизни, значение; 5.2 Удаление ключа: по названию; 5.3 Чтение ключа: по названию.
  6. Хранилище умеет хранить только простые строковые значения;
  7. Хранилище умеет сбрасывать кэш на диск и читать информацию с него.

Операции автоматической очистки и сброса, чтения и вставки желательно реализовать максимально эффективно.

В идеале придумать решение сборки мусора (экспирации ключей по TTL) за оптимальное время (с точки зрения алгоритма). Т.е. подумать, какую структуру данных использовать для кэша.