diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/configs/RedisConfig.kt b/src/main/kotlin/kr/co/vividnext/sodalive/configs/RedisConfig.kt index 09989bd..a2d605f 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/configs/RedisConfig.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/configs/RedisConfig.kt @@ -1,13 +1,14 @@ package kr.co.vividnext.sodalive.configs +import io.lettuce.core.ClientOptions import org.springframework.beans.factory.annotation.Value import org.springframework.cache.annotation.EnableCaching import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.data.redis.cache.RedisCacheConfiguration import org.springframework.data.redis.cache.RedisCacheManager +import org.springframework.data.redis.connection.RedisClusterConfiguration import org.springframework.data.redis.connection.RedisConnectionFactory -import org.springframework.data.redis.connection.RedisStandaloneConfiguration import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory import org.springframework.data.redis.core.RedisTemplate @@ -28,12 +29,23 @@ class RedisConfig( ) { @Bean fun redisConnectionFactory(): RedisConnectionFactory { - val clientConfiguration = LettuceClientConfiguration.builder() + val clusterConfig = RedisClusterConfiguration() + clusterConfig.clusterNode(host, port) + + val clientConfig = LettuceClientConfiguration.builder() + .clientOptions( + ClientOptions.builder() + .pingBeforeActivateConnection(true) + .autoReconnect(true) + .build() + ) + .commandTimeout(Duration.ofSeconds(5)) + .shutdownTimeout(Duration.ofSeconds(5)) .useSsl() .disablePeerVerification() .build() - return LettuceConnectionFactory(RedisStandaloneConfiguration(host, port), clientConfiguration) + return LettuceConnectionFactory(clusterConfig, clientConfig) } @Bean