스프링부트 3에서 비밀번호가 설정된 Redis 저장소 연결을 위한 방법을 찾던 중, 이를 설정하는 방법을 정리해보았습니다.
Redis client로는 Lettuce를 사용했습니다. Lettuce는 아래의 redis 의존성에 포함되어 있습니다.
Unable to connect to redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
spring:
data:
redis:
host: 호스트 이름
port: 포트 번호
url: jdbc:redis://유저네임:비밀번호@호스트 이름:포트번호
password: 비밀번호
@Configuration
public class RedisConfig {
@Value("${spring.data.redis.host}")
private String host;
@Value("${spring.data.redis.port}")
private int port;
@Value("${spring.data.redis.password}")
private String password;
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, port);
config.setPassword(password);
return new LettuceConnectionFactory(config);
}
}
비밀번호가 있는 경우, setPassword 메소드를 사용해서 비밀번호를 설정할 수 있습니다.
public interface TestEntityRepository extends CrudRepository<TestEntity, String> {
}
redis 저장소와의 연결을 테스트하기 위해서 repository를 생성했고, 값 저장과 읽어오기를 통해 테스트가 성공함을 볼 수 있었습니다.
인증 관련 문서를 보면, 레디스는 username도 설정이 가능하다고 되어 있습니다. 하지만 기본적으로 password로 인증하기 때문에 이러한 부분은 redis 서버를 설정하기 나름일것입니다.
기본적으로 redis는 캐시처럼 빠른 접근을 위해 사용하기 위해 쓰인다고 이해하고 있었습니다.
그렇지만 일반적인 메모리와 달리 redis 서비스의 통신 과정에서의 오버헤드에도 불구하고 인메모리 데이터베이스를 사용하는 이점에 대해 추가적으로 조사해보았습니다.
https://redis.io/commands/auth
https://stackoverflow.com/questions/19477821/redis-cache-vs-using-memory-directly
잘봤습니다.