개발
[Redis] Spring Boot에서 Redis 캐싱
yun000
2025. 4. 19. 20:58
🍏 redis 설치
1️⃣ Redis 서버 설치
https://yun000.tistory.com/301
[Redis] Window에 Reids 설치
1️⃣ 설치 아래의 링크에서 Redis-x64-3.0.504.msi를 다운받는다https://github.com/microsoftarchive/redis/releases Releases · microsoftarchive/redisRedis is an in-memory database that persists on disk. The data model is key-value, but many d
yun000.tistory.com
🍏 Spring Boot에서 Redis 설정
🔹 1. Redis 의존성 추가 (pom.xml)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
🔹 2. application.properties 설정
# Redis 서버 주소
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.timeout=6000
spring.cache.type=redis # 캐시 저장소 - Redis 사용
+) Docker에서 실행할 경우 spring.redis.host 변경
🔹 3. RedisConfig.java 설정
@Configuration
@EnableCaching // Spring Caching 기능 활성화
public class RedisConfig {
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory();
}
// RedisTemaplte = Redis에 데이터 저장, 조회하기 위한 설정
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
🍏 Redis 캐싱 적용
🔹 1. @Cacheable (조회 캐싱)
=처음 호출 할 때는 DB에서 조회 → 이후 Redis에서 가져옴 (성능 향상!)
@Service
public class BookService {
@Autowired
private IBookRepository bookRepository;
@Cacheable(value = "books", key = "#id") // Redis에 저장
public Book getBookById(Long id) {
System.out.println("DB에서 조회: " + id);
return bookRepository.findById(id).orElse(null);
}
}
🔹 2. @CachePut (업데이트 시 캐시 갱신)
= DB 업데이트와 동시에 Redis 캐시 갱신
@CachePut(value = "books", key = "#book.id")
public Book updateBook(Book book) {
return bookRepository.save(book);
}
🔹 3. @CacheEvict (캐시 삭제)
= DB에서 삭제 시 Redis 캐시도 자동 삭제
@CacheEvict(value = "books", key = "#id")
public void deleteBook(Long id) {
bookRepository.deleteById(id);
}
🍏 Redis 캐시 데이터 적용 확인
저장된 모든 캐시 키 확인
keys *
캐시 데이터 조회
get books::1 # 특정 key 데이터 확인
Redis 캐시 전체 삭제
flushall # 전체 캐시 삭제