Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.05.2020
Сообщений: 13

Spring Data Redis, использование нескольких бд

14.10.2021, 04:10. Показов 1951. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Помогите, пожалуйста, разобраться.

Используются для хранения 3 бд редиса на одном сервере на одном порту. В каждую бд сохраняются разные сущности. В спринге есть аннотация @RedisHash("entity_name"), которую можно использовать на сущности для использования ее в имплементации спринговского круд-репозитория. Но т.к. бд разные по номерам, пришлось создать разные бины RedisTemplate, которые забирают номера из пропертей. Эти RedisTemplate используются в кастомных репозиториях, но хотелось бы все-таки использовать стандартный круд-репозиторий.

Скажите пожалуйста, возможно ли подсовывать для связи с разными бд разные RedisTemplate соответствующим репозиториям из спринга?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2021, 04:10
Ответы с готовыми решениями:

Session scoped бины в Spring при сохранении в Redis через Spring Session
Меня интерисует опыт по части использования Spring бинов со скоупом Session. Пример кода, который приведен чуть ниже будет отлично...

Выборка данных из нескольких таблиц используя Spring Data JPA Repository и преобразование в json
Всем привет! Сейчас мне данные отдаются в таком виде: Эти данные берутся из одной таблицы public_organisations. Но есть...

Redis cache in spring boot + hibernate + PostgreSQL
Добрый день. Возникло пару вопросов по redis cache в spring boot + hibernate + PostgreSQL. Заранее извиняюсь за nubовские вопросы...

2
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
14.10.2021, 15:56
Лучший ответ Сообщение было отмечено Narki как решение

Решение

https://attyuttam.medium.com/d... dbdd644072
на это попробуй посмотреть, но я сам не пробовал, поэтому хз
1
0 / 0 / 0
Регистрация: 02.05.2020
Сообщений: 13
15.10.2021, 03:15  [ТС]
xoraxax, благодарю за помощь с твоей стороны (в очередной раз), много полезного узнал по этой ссылке.

Может быть я открываю Америку, но хотел сказать, что оказывается спринговые репозитории для связи с редисом не очень эффективны. Например, в методе saveAll(Iterable<S> entities) спринг под капотом сохраняет каждый объект по отдельности методом save(S entity) и, учитывая связь (редис на другой машине развернут), у меня лист из 3к сущностей сохранялся минут 10, хотя разработчики могли бы сделать применение, например, Execute Pipelined, который поддерживается редисом или даже lua скрипты. С помощью указанного ниже решения все операции производятся менее, чем за секунду.

Простейший кастомный репозиторий, хранящий сет строк с ключом str (если вдруг кому-то понадобится):

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@Repository
public class StringRepositoryImpl implements StringRepository {
 
    @Qualifier("StringRedisTemplate")
    private final RedisTemplate<String, String> stringRedisTemplate;
 
    public StringRepositoryImpl(RedisTemplate<String, String> stringRedisTemplate) {
        this.stringRedisTemplate = stringRedisTemplate;
    }
 
    @Override
    public void saveAll(List<String> strings) {
        stringRedisTemplate.opsForSet().add("str", strings.toArray(String[]::new));
    }
 
    @Override
    public List<String> findAll() {
        Set<String> strings = stringRedisTemplate.opsForSet().members("str");
        if (strings != null) {
            return new ArrayList<>(strings);
        }
        return new ArrayList<>();
    }
 
    @Override
    public void deleteAll() {
        stringRedisTemplate.delete("str");
    }
}
В pom.xml (спринг версии 2.4.2):

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>io.lettuce</groupId>
                    <artifactId>lettuce-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
 
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2021, 03:15
Помогаю со студенческими работами здесь

Добавление объекта в Redis после старта Spring Boot
Я создал объект: @Data @AllArgsConstructor public class RedisStatistic { private long id; private long...

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями Spring MVC проект собирается нормально и...

Использование Redis (phpredis) в цикле
Всем привет. Есть 2 сервера. На первом сервере я написал ф-цию которая посредством curl обращается к моей библиотеке на втором сервере....

Redis 6 cluster настройка и использование
Доброго времени суток. Прошу совета и помощи и знающих людей, которые сталкивались в Redis Cluster. Начал изучать эту тему и появились...

Spring Data Solr
Пытаюсь запилить на Spring MVC проект Spring Data Solr(на моем проекте также паралелльно используется JPA). Используя методы библиотеки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru