Основная идея всей задачи укладывается в одно предложение:
сделать RedisMap
- корректную реализацию Map<String,String>
с хранением данных в Redis. Задача имеет ряд усложнений.
- Реализовать
RedisMap
таким образом, чтобы любой код, принимающийMap<String,String>
, продолжил бы работать (функционально) так же при передаче в негоRedisMap
.
Подсказка:HashMap<String,String>
- самая близкая по смыслу кRedisMap
реализация в Java.
Примечание: должно быть возможным создаватьRedisMap
в любых количествах (как это можно делать сHashMap
), а данные в каждой структуре будут свои. - Удалением объектов в Java занимается сборщик мусора.
Необходимо придумать способ автоматической очистки Redis при удалении объекта
RedisMap
в Java. - Придумать и реализовать способ использования одного набора «key:value» из нескольких приложений через
RedisMap
. Например, в одном приложенииRedisMap
наполняется объектами, а в другом - они используются.
Примечание: при реализации важно не сломать сценарии из предыдущих двух пунктов.
Для взаимодействия с Redis из Java можно использовать любой из клиентов, например, Jedis.
Для удобства в проекте подготовлена заготовка класса RedisMap
и базовый тест для неё.
Примечания
- Возможно, что в ходе реализации потребуется переопределить какие-либо другие методы из
Map
. - Для проверки корректности реализации
RedisMap
базового теста недостаточно, поэтому необходимо позаботиться о написании своих тестов.