Spring Boot Redis Error - LettuceConnectionFactory has been CREATED. Use start() to initialize it

@ZungTa · 2022-11-17 목요일 · 1 min read

Spring Boot에서 Redis를 사용하려고 블로그들을 보며 테스트하던 중 서버 실행까지는 문제없이 되는데 Redis를 사용할 때 이런 에러가 발생했다.

LettuceConnectionFactory has been CREATED. Use start() to initialize it

RedisConfig.java 파일에서 RedisConnectionFactory를 만들어주는 메서드를 이렇게 작성했는데 문제가 있었다.

private RedisConnectionFactory getRedisBsDsConnectionFactory(
    String host, int port, String password
) {
  RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host,
      port);
  if (password != null) {
    config.setPassword(password);
  }

  return new LettuceConnectionFactory(config);
}

저 메서드를 일반적인 방법으로 Bean에 등록해서 사용했을땐 문제가 없었던 것 같은데 Redis 두 곳에 연결하기 위해서 조금 변형해서 사용했기 때문에 에러가 발생하는 상황이 만들어진 것 같다.

저 메서드를 Bean에서 제거하고 private 메서드로 만들었고 parameter에 따라서 RedisConnectionFactory를 만들어주게 변경하였다.

그 이후로 에러가 발생한 걸로 추측된다.

해결 방법은 단순했다.

lettuceConnectionFactory.start()를 해주면 된다. 이런 방식으로.

private RedisConnectionFactory getRedisBsDsConnectionFactory(
    String host, int port, String password
) {
	...
  LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(config);
  lettuceConnectionFactory.start();

  return lettuceConnectionFactory;
}
@ZungTa
I'm a backend developer
© ZungTa Devlog, Built with Gatsby