#redis #spring-data-jpa #spring-data #redisson
#redis #spring-data-jpa #spring-данные #redisson
Вопрос:
Мне нужно перенести мое приложение Spring Boot на Redis вместо какой-то бесполезной реляционной СУБД (мне нужна некоторая масштабируемость среди других причин). Я провел некоторое исследование, но не смог прояснить некоторые вопросы перед началом:
- Должен ли я использовать Redisson в качестве кэша гибернации
- Должен ли я каким-то образом изменить свою модель / объекты, чтобы использовать их в NoSQL Redis? Отношения в моей модели не являются примитивными, и мне интересно, должен ли я выполнить какие-либо шаги для переноса модели для запуска под Redis?
Заранее спасибо за любую помощь.
Ответ №1:
Вам следует подумать о следующем:
-
Шаблоны доступа: они помогают решить, какой NoSQL выбрать. Redis — это хранилище ключей и значений. Все шаблоны доступа основаны на ключах. У него нет языка запросов.
-
Архитектура: Redis полностью встроен в память и, следовательно, удивительно быстр. Это одно из самых популярных решений для кэширования. Однако, если вы используете его в качестве базы данных, тогда определите цену, поскольку память стоит дороже, чем дисковое пространство. Кроме того, существует небольшая вероятность потери данных, если кластер выйдет из строя, а данные еще не были реплицированы на диск.
-
Если вы можете поставить все галочки, я бы посоветовал упростить и использовать Java-клиент, такой как Jedis, а не Redisson.
-
Вам нужно будет написать новый уровень 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