Статья подготовлена для студентов курса «Разработчик на Spring Framework» в образовательном проекте OTUS.
В первой части мы рассмотрели NoSQL базы данных, в частности Key-Value NoSQL БД, и обсудили одну из самых популярных NoSQL БД — Redis. Во второй части мы узнали, что такое Spring Data и Spring Data Redis Repositories. В этой части посмотрим на альтернативный вариант подключения к Redis с помощью различных *Operations-классов (ну, точнее, интерфейсов, реализации будут – *Templates).
Spring Data Redis Operations
Корневым интерфейсом является RedisOperations и из него можно получить все остальные, которые предоставляются на большинство типов данных Redis. С помощью таких классов можно более специфично реализовывать mapping сущностей, а также более эффективно утилизировать место в Redis.
Итак, напишем свой собственный репозиторий на их основе. Сама сущность:
Допустим, мы хотим хранить эту сущность не в виде хэша, а компактно в виде строк (name) по ключу. Соответственно наш репозиторий:
Обратите внимание, что мы из корневого класса RedisOperations получаем операции для работы со значениями .opsForValue(). В действительности, таких возможностей – почти под каждый тип данных.
Ну и наконец, код программы с бином RedisTemplate:
Оставлю вам удовольствие самостоятельно разобраться, например, нужна или нет аннотация @Transactional на этом репозитории. Несложно догадаться, что после работы в базе останутся следующие данные:
На этом всё. Успешного использования Redis!
Набор на курс «Разработчик на Spring Framework» уже идет, занятия начинаются 28 мая! Торопитесь присоединиться к группе:
ЗАПИСАТЬСЯ В ГРУППУ