Pivotal cloud foundry RedisConnectionFactory

Pivotal cloud foundry RedisConnectionFactory

目前我使用的是PCF提供的Redis。我正在使用 spring-data-redis 中的 JedisConnectionFactory 连接到它,提供如下所需的配置:

@Configuration
public class RedisConfig {

    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        final JedisConnectionFactory jedisConFactory = new JedisConnectionFactory();
        jedisConFactory.setHostName("pivotal-redis-host");
        jedisConFactory.setPort(1234);
        jedisConFactory.setPassword("mySecretPassword");
        return jedisConFactory;
    }
}

spring-cloud-config provides AbstractCloudConfig class 可用于配置各种连接。是否有任何必须使用它而不是 JedisConnectionFactory 的明显好处?看起来需要提供的配置较少,但还有其他原因吗?

public class RedisCloudConfig extends AbstractCloudConfig {
    @Bean
    public RedisConnectionFactory redisConnection() {
        return connectionFactory().redisConnectionFactory();
    }
}

提前致谢。

在我看来,即使您不需要专门定义 @Bean 配置。

您只需在 application.ymlapplication.properties 中提供 Redis 服务器详细信息即可使用自动配置。

spring:
  redis:
    host: pivotal-redis-host
    port: 1234
    password: mySecretPassword 

与 Spring Cloud Connectors 的主要区别在于它从您绑定到 Cloud Foundry 上的应用程序的 Redis 服务中读取服务信息。然后它会根据该动态绑定信息自动配置 Redis 连接。

您使用 JedisConnectionFactory 的示例以及@avhi 的解决方案是将配置信息直接放入您的源代码或应用程序配置文件中。在这种情况下,如果您的服务发生变化,则您需要重新配置您的应用并再次 运行 cf push

使用 Spring Cloud Connectors,您可以通过 CF 简单地取消绑定和绑定新的 Redis 服务来更改服务,并且 运行ning cf restart.