1

我的应用程序需要多个RedisLabs 数据库,如其主页中所述:

计划中的多个专用数据库

我们在一个计划中启用多个数据库,每个数据库都以专用进程和非阻塞方式运行。

我依靠Spring Cloud Connectors来连接到 Heroku(或本地的 Foreman),似乎 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 数据库,我应该如何配置第二个连接工厂?

4

2 回答 2

1

Redis Cloud 将为您只为您创建的每个附加组件中的第一个资源设置一个 env var。

如果您在附加组件中创建多个资源,您应该自己设置一个 env var,或者直接在代码中使用新端点。

于 2016-11-01T13:53:25.043 回答
0

简而言之,答案是肯定的,RedisConnectionFactory 应该使用 Jedis 来连接到您的 redis 数据库。它正在使用只能与单个 redis 端点一起使用的 jedis 池。在这方面,RedisLabs 和基本的 redis 没有区别。

您应该创建多个连接池以使用多个 redis 数据库/端点。

只是为了扩展,如果您使用多个数据库进行扩展,则不需要 RedisLabs,因为它们支持使用单个端点进行集群。因此您可以根据需要简单地创建具有尽可能多内存的单个数据库,RedisLabs 将为您创建一个集群并自动扩展您的 redis。

如果您的应用程序确实需要逻辑分离,那么创建多个数据库是正确的方法。

于 2014-10-26T03:05:58.973 回答