Redis로 캐싱 성능조회

WAS·2025년 6월 8일
0

Redis

목록 보기
2/2

✅ 주의 해야할점

  • Reids에 객체를 저장하거나 읽을려면 항상 직렬화와 역직렬화 과정이 필요
    -> Redis 가 이해할 수 있는 형태로 변환하기 위해서
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class Board implements Serializable{
	private static final long serialVersionUID = 1L;
	private int boardNo;
	private String boardWriter;
	private String boardTitle;
	private String boardContent;
	private Date boardDate;
	private String boardCategory;
	private String noticeYn;
	private String boardOriginalFileName;
	private String boardRenamedFileName;
	private int rnum; // rownum 추가 필요
}
  • @EnableCaching 을 사용하는 @Configuration 파일 만들기
    -> Spring이 내부적으로 캐시 관련 어노테이션(@Cacheable, @CachePut, @CacheEvict 등)
    을 인식할 수 있도록 캐시 기능을 활성화
@Configuration
@EnableCaching
public class RedisConfig {
	@Bean
	public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
    	// 캐시의 기본 동작 방식을 설정하는 객체를 만들기
		RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
         		// 캐시에 저장할 값을 JSON 형태로 직렬화(변환)하도록 설정
				.serializeValuesWith(RedisSerializationContext.SerializationPair
						.fromSerializer(new GenericJackson2JsonRedisSerializer()))
				.entryTtl(Duration.ofMinutes(10)) // 캐시의 유효기간을 10분으로 지정
				.disableCachingNullValues(); // // null 값(값이 없는 경우)은 캐시에 저장하지 않도록 설정
                
		// 위에서 만든 설정(config)과 Redis 연결 정보를 사용해서 RedisCacheManager 객체를 생성해서 반환
		return RedisCacheManager.builder(connectionFactory).cacheDefaults(config).build();
	}
}
  • @Cacheable 활용해서 Redis 캐싱 적용
	@Cacheable(value = "boardList",key = "'allBoards'") // api로 redis 전체 데이터 호출 테스트
	public List<Board> getBoardList(){
		System.out.println("db안거침");
		return boardDao.getBoardList();
	}
	
    // api로 redis 검색 데이터 호출 테스트
	@Cacheable(value = "boardList", key = "'category:' + #category") 
	public List<Board> getBoardListByCategory(String category) {
		System.out.println("db안거침");
	    return boardDao.getBoardListByCategory(category);
	}

✅ 성능 비교


도커로 Redis 접속 후 레디스 접속하기
docker exec -it [컨테이너명] redis-cli
docker exec -it e4d redis-cli

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글