RedisConfig

dia·2025년 1월 29일

redisConnectionFactory()

역할

RedisConnectionFactory 빈을 생성하는 메서드
LettuceConnectionFactory(host, port)를 사용하여 Redis 서버와의 연결을 관리
이후 다른 RedisTemplate이 이 ConnectionFactory를 사용하여 Redis와 통신함

예시

@Bean
public RedisConnectionFactory redisConnectionFactory() {
    return new LettuceConnectionFactory(host, port);
}

@bean RedisConnectionFactory

Redis 서버에 대한 연결을 제공하는 인터페이스
LettuceConnectionFactory는 Lettuce(Redis 클라이언트 라이브러리)를 사용하여 연결을 설정하는 구현체
(Spring Boot에서 기본적으로 Lettuce 사용)


redisTemplate()

역할

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와 통신

  • redisConnectionFactory(): Redis 서버와의 연결을 관리하는 Lettuce 기반 ConnectionFactory 생성
  • redisTemplate(): Redis에서 데이터를 저장하고 조회할 수 있도록 하는 RedisTemplate 생성

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

profile
CS 메모장

0개의 댓글