프로그래밍/ETC
[ElasticCache] Redis Cluster command execute 에러
Mocha96
2024. 1. 22. 01:02
개요
ElasticCahce for Redis로 클러스터를 구성하고 SpringBoot에 연동을 하는 작업을 했다.
연동 확인 하고 api를 돌려봤는데
org.springframework.data.redis.RedisSystemException: Error in execution... 중략
이 나오면서 트랜잭션이 자꾸 실패가 났었다.
원인
로컬에서 Redis Connection Factory에 기본 StandAlone으로 설정이 되어있었다.
@Bean
public LettuceConnectionFactory lettuceConnectionFactory() {
return new LettuceConnectionFactory(host, port); <- LettueceStandAlone으로 팩토리생성됨
}
해결
ClusterConfiguration으로 팩토리를 생성해주면 된다.
@Bean
public LettuceConnectionFactory lettuceConnectionFactory() {
RedisClusterConfiguration clusterConfiguration = new RedisClusterConfiguration();
clusterConfiguration.clusterNode(host, port);
LettuceClientConfiguration clientConfiguration = LettuceClientConfiguration.builder()
.clientOptions(ClientOptions.builder()
.socketOptions(SocketOptions.builder()
.connectTimeout(Duration.ofMillis(5000L)).build())
.build())
.commandTimeout(Duration.ofSeconds(5000L))
.build();
return new LettuceConnectionFactory(clusterConfiguration, clientConfiguration);
}
728x90