Search in sources :

Example 6 with RedisStandaloneConfiguration

use of org.springframework.data.redis.connection.RedisStandaloneConfiguration in project spring-cloud-connectors by spring-cloud.

the class RedisConnectionFactoryCreator method create.

@Override
public RedisConnectionFactory create(RedisServiceInfo serviceInfo, ServiceConnectorConfig serviceConnectorConfig) {
    RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
    configuration.setHostName(serviceInfo.getHost());
    configuration.setPort(serviceInfo.getPort());
    configuration.setPassword(RedisPassword.of(serviceInfo.getPassword()));
    if (hasClass(JEDIS_CLASS_NAME)) {
        JedisClientConfigurationBuilder builder = JedisClientConfiguration.builder();
        RedisJedisClientConfigurer clientConfigurer = new RedisJedisClientConfigurer();
        if (serviceConnectorConfig instanceof RedisConnectionFactoryConfig) {
            clientConfigurer.configure(builder, (RedisConnectionFactoryConfig) serviceConnectorConfig);
        } else {
            clientConfigurer.configure(builder, (PooledServiceConnectorConfig) serviceConnectorConfig);
        }
        if (connectionIsSecure(serviceInfo)) {
            builder.useSsl();
        }
        JedisConnectionFactory connectionFactory = new JedisConnectionFactory(configuration, builder.build());
        connectionFactory.afterPropertiesSet();
        return connectionFactory;
    } else if (hasClass(LETTUCE_CLASS_NAME)) {
        LettuceClientConfigurationBuilder builder;
        if (serviceConnectorConfig != null && ((PooledServiceConnectorConfig) serviceConnectorConfig).getPoolConfig() != null) {
            if (!hasClass(APACHE_COMMONS_POOL_CLASS_NAME)) {
                throw new ServiceConnectorCreationException(String.format("Failed to create cloud Redis " + "connection factory for %s service. Apache Commons Pool must be available on " + "the classpath if pooling parameters are provided.", serviceInfo.getId()));
            }
            builder = LettucePoolingClientConfiguration.builder();
        } else {
            builder = LettuceClientConfiguration.builder();
        }
        if (connectionIsSecure(serviceInfo)) {
            builder.useSsl();
        }
        RedisLettuceClientConfigurer clientConfigurer = new RedisLettuceClientConfigurer();
        if (serviceConnectorConfig instanceof RedisConnectionFactoryConfig) {
            clientConfigurer.configure(builder, (RedisConnectionFactoryConfig) serviceConnectorConfig);
        } else {
            clientConfigurer.configure(builder, (PooledServiceConnectorConfig) serviceConnectorConfig);
        }
        LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(configuration, builder.build());
        connectionFactory.afterPropertiesSet();
        return connectionFactory;
    } else {
        throw new ServiceConnectorCreationException(String.format("Failed to create cloud Redis " + "connection factory for %s service. No client implementation classes " + " of Jedis or Lettuce clients implementation (%s, %s) not found", serviceInfo.getId(), JEDIS_CLASS_NAME, LETTUCE_CLASS_NAME));
    }
}
Also used : JedisClientConfigurationBuilder(org.springframework.data.redis.connection.jedis.JedisClientConfiguration.JedisClientConfigurationBuilder) ServiceConnectorCreationException(org.springframework.cloud.service.ServiceConnectorCreationException) JedisConnectionFactory(org.springframework.data.redis.connection.jedis.JedisConnectionFactory) PooledServiceConnectorConfig(org.springframework.cloud.service.PooledServiceConnectorConfig) LettuceConnectionFactory(org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory) RedisStandaloneConfiguration(org.springframework.data.redis.connection.RedisStandaloneConfiguration) LettuceClientConfigurationBuilder(org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration.LettuceClientConfigurationBuilder)

Example 7 with RedisStandaloneConfiguration

use of org.springframework.data.redis.connection.RedisStandaloneConfiguration in project jetcache by alibaba.

the class RedisSpringDataCacheTest method lettuceTest.

@Test
public void lettuceTest() throws Exception {
    LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(new RedisStandaloneConfiguration("127.0.0.1", 6379));
    connectionFactory.afterPropertiesSet();
    doTest(connectionFactory);
}
Also used : LettuceConnectionFactory(org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory) RedisStandaloneConfiguration(org.springframework.data.redis.connection.RedisStandaloneConfiguration) LoadingCacheTest(com.alicp.jetcache.LoadingCacheTest) RefreshCacheTest(com.alicp.jetcache.RefreshCacheTest) AbstractExternalCacheTest(com.alicp.jetcache.test.external.AbstractExternalCacheTest) Test(org.junit.Test)

Aggregations

RedisStandaloneConfiguration (org.springframework.data.redis.connection.RedisStandaloneConfiguration)7 JedisConnectionFactory (org.springframework.data.redis.connection.jedis.JedisConnectionFactory)3 LettuceConnectionFactory (org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory)3 LettuceClientConfigurationBuilder (org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration.LettuceClientConfigurationBuilder)2 LoadingCacheTest (com.alicp.jetcache.LoadingCacheTest)1 RefreshCacheTest (com.alicp.jetcache.RefreshCacheTest)1 AbstractExternalCacheTest (com.alicp.jetcache.test.external.AbstractExternalCacheTest)1 lombok.val (lombok.val)1 ConfigurationPropertyFactoryBean (org.hisp.dhis.external.conf.ConfigurationPropertyFactoryBean)1 Test (org.junit.Test)1 Statement (org.junit.runners.model.Statement)1 PooledServiceConnectorConfig (org.springframework.cloud.service.PooledServiceConnectorConfig)1 ServiceConnectorCreationException (org.springframework.cloud.service.ServiceConnectorCreationException)1 Bean (org.springframework.context.annotation.Bean)1 JedisClientConfiguration (org.springframework.data.redis.connection.jedis.JedisClientConfiguration)1 JedisClientConfigurationBuilder (org.springframework.data.redis.connection.jedis.JedisClientConfiguration.JedisClientConfigurationBuilder)1 LettuceClientConfiguration (org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration)1