그외

Redis 알아보기

낑주영 2025. 4. 16. 14:04

💡 Redis란?

인메모리 기반의 Key-Value 저장소.

 

 

🧱 Redis 기본 구조

Redis는 단순하면서도 강력한 자료구조를 제공한다:

자료구조설명
String 가장 기본적인 형태. 숫자도 저장 가능
List 연결 리스트. FIFO 구조
Set 중복 없는 집합
Sorted Set 순위가 있는 집합 (랭킹 구현에 유용)
Hash 필드-값 쌍 저장 (JSON 느낌)

 

🧪 실전 코드: Spring Boot + Redis 캐시

@Configuration
@EnableCaching
public class RedisConfig {
    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        return new LettuceConnectionFactory();
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory());
        return template;
    }
}
@Service
public class PostService {

    @Cacheable(value = "post", key = "#id")
    public Post getPostById(Long id) {
        // 여기선 DB 조회가 일어남
        return postRepository.findById(id).orElseThrow();
    }
}

@Cacheable을 쓰면 캐시에 저장되어, 다음엔 DB 접근이 생략된다.
첫 호출만 DB, 이후 호출은 Redis에서 가져오는 구조

 

 

⚖️ Redis의 장단점

장점

✅ 빠르다
✅ 다양한 자료구조
✅ 클러스터 구성 가능
✅ pub/sub으로 실시간 처리도 가능

단점

❌ 메모리에 저장하므로 휘발성 있음 (옵션으로 해결 가능)
❌ 잘못 쓰면 메모리 터짐
❌ 운영 중에는 모니터링 필수

 

 

궁금하니 사이드 프로젝트에 한번 적용해봐야겠군