그외
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으로 실시간 처리도 가능
단점
❌ 메모리에 저장하므로 휘발성 있음 (옵션으로 해결 가능)
❌ 잘못 쓰면 메모리 터짐
❌ 운영 중에는 모니터링 필수
궁금하니 사이드 프로젝트에 한번 적용해봐야겠군