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;
}