2016-12-21 4 views
0

Мое приложение построено на весеннем ботинке и подкреплено хранилищем данных Redis. В настоящее время у меня есть соединение только с одним сервером redis, и свойства этого сервера (хост/порт) определены в bootstrap.yml.Динамическое создание RedisTemplate для подключения к другому серверу Redis

Я хочу поддерживать мульти-аренда, используя отдельный сервер Redis для каждого клиента. Для этого мне нужно динамически подключаться к различным серверам redis во время выполнения. Возможно ли это с помощью RedisTemplate и JedisConnecitonFactory?

ответ

0

Короче

Нет необходимости в нескольких RedisTemplate экземпляров; выполнить маршрутизацию RedisConnectionFactory.

Объяснение

RedisTemplate использует лежащий в основе RedisConnectionFactory для получения соединений. Чтобы перенаправить операции Redis на разные соединения, просто выполните вариант маршрутизации RedisConnectionFactory. RedisTemplate запрашивает связанные RedisConnectionFactory для каждой операции для предоставления RedisConnection.

При использовании транзакций вам необходимо обратить внимание. Транзакционное использование связывает соединение Redis с вызывающим потоком, и RedisTemplate работает эффективно по тому же соединению, пока транзакция не будет завершена.

Посмотрите на AbstractRoutingDataSource, чтобы узнать, как поддерживается маршрутизация источника данных для соединений JDBC. Маршрутизация RedisConnectionFactory может следовать одному и тому же шаблону.

+0

Спасибо за быстрый ответ. Позвольте мне попробовать ваш вариант. – krajwade

Смежные вопросы