RedisConnectionFactory 빈을 생성하는 메서드
LettuceConnectionFactory(host, port)를 사용하여 Redis 서버와의 연결을 관리
이후 다른 RedisTemplate이 이 ConnectionFactory를 사용하여 Redis와 통신함
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(host, port);
}
Redis 서버에 대한 연결을 제공하는 인터페이스
LettuceConnectionFactory는 Lettuce(Redis 클라이언트 라이브러리)를 사용하여 연결을 설정하는 구현체
(Spring Boot에서 기본적으로 Lettuce 사용)
Spring이 Redis와 상호작용하는 RedisTemplate<String, String> 빈을 생성
RedisTemplate은 Redis의 키-값 데이터를 저장하고 조회하는 역할을 함
ConnectionFactory를 이용해 Redis 서버와 실제로 데이터를 주고받음
@Bean
public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>(); //RedisTemplate 객체 생성 (기본적으로는 Object 타입 사용)
redisTemplate.setKeySerializer(new StringRedisSerializer()); // key -> String
redisTemplate.setValueSerializer(new StringRedisSerializer()); // value -> String
redisTemplate.setConnectionFactory(redisConnectionFactory()); //Redis와 연결할 ConnectionFactory 설정
return redisTemplate; //Spring 빈으로 등록, 다른 서비스나 컴포넌트에서 주입 사용 가능
}
RedisTemplate이 redisConnectionFactory를 사용해서 Redis와 통신
RedisTemplate 없이 RedisConnectionFactory만 있으면, Redis에 직접 데이터를 저장하거나 가져올 수 없음
@Autowired
private RedisTemplate<String, String> redisTemplate;
public void saveData() {
redisTemplate.opsForValue().set("key", "Hello, Redis!");
}
public String getData() {
return redisTemplate.opsForValue().get("key"); // "Hello, Redis!" 반환
}
redisConnectionFactory(): Redis와 연결
redisTemplate(): Redis에 데이터를 저장하고 조회할 수 있도록 도와줌, Redis와 쉽게 데이터를 주고받도록 만들어주는 도구
chatGPT