С помощью пружинных разъема облако для Heroku для того, чтобы подключиться к нескольким базам данных RedisLabs


У меня есть требование для нескольких баз данных RedisLabs для моего приложения, как описано на их домашней странице:

Несколько выделенных баз данных в плане

Мы включаем несколько БД в одном плане, каждый из которых выполняется в отдельном процессе и не блокируется.

Я полагаюсь на Spring Cloud Connectors для подключения к Heroku (или Foreman в local), и, похоже, класс RedisServiceInfoCreator позволяет использовать один RedisLabs URL то есть REDISCLOUD_URL

Вот как я настроил свою первую фабрику соединений redis:

@Configuration
@Profile({Profiles.CLOUD, Profiles.DEFAULT})
public class RedisCloudConfiguration extends AbstractCloudConfig  {

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        PoolConfig poolConfig = ...
        return connectionFactory().redisConnectionFactory("REDISCLOUD", new PooledServiceConnectorConfig(poolConfig));
    }
...

Как я должен настроить вторую фабрику соединений , Если я намерен использовать несколько баз данных redis labs?

2 2

2 ответа:

Redis Cloud установит для вас env var только для первого ресурса в каждом создаваемом вами дополнении.

Если вы создаете несколько ресурсов в надстройке, вы должны либо установить env var самостоятельно, либо использовать новую конечную точку непосредственно в коде.

Короче говоря, ответ да, RedisConnectionFactory должен использовать Jedis для подключения к вашей базе данных redis. он использует пул джедаев, который может работать только с одной конечной точкой redis. в этом отношении нет разницы между RedisLabs и базовым redis.

Необходимо создать несколько пулов соединений для работы с несколькими базами данных redis/конечными точками.

Просто для расширения, если вы используете несколько dbs для масштабирования, нет необходимости с RedisLabs, поскольку они поддерживают кластеризацию с помощью одна конечная точка. таким образом, Вы можете просто создать одну БД с таким количеством памяти, как это необходимо, RedisLabs создаст кластер для вас и автоматически масштабирует ваши redis.

Если ваше приложение требует логического разделения, то создание нескольких баз данных-это правильный путь.