Миграция модели реляционной СУБД на Redis

#redis #spring-data-jpa #spring-data #redisson

#redis #spring-data-jpa #spring-данные #redisson

Вопрос:

Мне нужно перенести мое приложение Spring Boot на Redis вместо какой-то бесполезной реляционной СУБД (мне нужна некоторая масштабируемость среди других причин). Я провел некоторое исследование, но не смог прояснить некоторые вопросы перед началом:

  1. Должен ли я использовать Redisson в качестве кэша гибернации
  2. Должен ли я каким-то образом изменить свою модель / объекты, чтобы использовать их в NoSQL Redis? Отношения в моей модели не являются примитивными, и мне интересно, должен ли я выполнить какие-либо шаги для переноса модели для запуска под Redis?

Заранее спасибо за любую помощь.

Ответ №1:

Вам следует подумать о следующем:

  1. Шаблоны доступа: они помогают решить, какой NoSQL выбрать. Redis — это хранилище ключей и значений. Все шаблоны доступа основаны на ключах. У него нет языка запросов.

  2. Архитектура: Redis полностью встроен в память и, следовательно, удивительно быстр. Это одно из самых популярных решений для кэширования. Однако, если вы используете его в качестве базы данных, тогда определите цену, поскольку память стоит дороже, чем дисковое пространство. Кроме того, существует небольшая вероятность потери данных, если кластер выйдет из строя, а данные еще не были реплицированы на диск.

  3. Если вы можете поставить все галочки, я бы посоветовал упростить и использовать Java-клиент, такой как Jedis, а не Redisson.

  4. Вам нужно будет написать новый уровень DAO для адаптации к шаблонам доступа на основе ключей.

Комментарии:

1. Привет, Викрам, большое спасибо за ваши предложения. Пока Redis на основе ключей работает нормально, но мне нужно оценить время и усилия, необходимые для переноса моей модели приложения на Redis. Есть ли у вас какие-либо примеры того, как выполнить такую миграцию? к сожалению, я не смог его найти.

2. Пока я смотрю на это руководство: medium.com/@wishmithasmendis /…

3. В нем есть две основные части. 1. Создайте шаблоны доступа / модель / ключи в Redis. Это скорее искусство. Я предлагаю прочитать redis.io/topics/data-types-intro и убедитесь, что вы понимаете поддерживаемые структуры данных. 2. Уровень DAO в клиентском приложении. Это не должно быть сложным. К сожалению, у меня нет примера кода для совместного использования. Обратитесь к этому руководству baeldung.com/jedis-java-redis-client-library