Skip to content
This repository has been archived by the owner on Aug 13, 2022. It is now read-only.

대용량 트래픽 게시글 검색시 캐싱 적용 #29

Open
junshock5 opened this issue Aug 10, 2020 · 0 comments
Open

대용량 트래픽 게시글 검색시 캐싱 적용 #29

junshock5 opened this issue Aug 10, 2020 · 0 comments
Labels
working 작업중입니다.

Comments

@junshock5
Copy link
Collaborator

junshock5 commented Aug 10, 2020

스프링 부트 환경에서 캐싱 사용법은
Redis, Memcahced, Ehache와 같은 다양한 cahce 솔루션과
순수 java방식의 spring @Caheable 방식이 있습니다.

고려할 점으로는 업무 로직과 캐싱 로직의 완벽한 분리를 통해서 (프락시 패턴을 사용) 확장성 있게 적용하려고 합니다.

예시로는 @Cacheable이 설정되어 있는 메서드는 Spring AOP를 통해 캐싱 처리됩니다.

@junshock5 junshock5 added the working 작업중입니다. label Aug 10, 2020
@junshock5 junshock5 changed the title 관리자 알림 및 물품 카테고리에 캐싱 적용 알림글 및 물품 카테고리에 캐싱 적용 Aug 10, 2020
@junshock5 junshock5 changed the title 알림글 및 물품 카테고리에 캐싱 적용 본인 게시글 검색시 캐싱 적용 Aug 15, 2020
@junshock5 junshock5 changed the title 본인 게시글 검색시 캐싱 적용 게시글 검색시 캐싱 적용 Aug 15, 2020
junshock5 added a commit that referenced this issue Aug 15, 2020
spring-boot-starter-cache 의존성 추가
Redis Cache를 사용하기 위한 cache manager 등록
Product register시 @CacheEvict를 사용하여 캐시 삭제
@junshock5 junshock5 changed the title 게시글 검색시 캐싱 적용 대용량 트래픽 게시글 검색시 캐싱 적용 Aug 15, 2020
junshock5 added a commit that referenced this issue Aug 24, 2020
- 레디스 기본 만료시간 설정명 변경
- 레디스 주석 내용 변경
junshock5 added a commit that referenced this issue Aug 27, 2020
- redis.config에 시스템 설정 명 변경
junshock5 added a commit that referenced this issue Aug 31, 2020
#29 게시글 검색시 @Cacheable을 사용하여 RedisCache 적용
junshock5 added a commit that referenced this issue Sep 7, 2020
- redisTemplate json 형식 받을시 값이 깨지지 않게 직렬화하고 클래스 여러개 사용 가능한 bean 등록
- CategoryDTO builder 적용
- ProductSearchController 검색시 초기 캐싱된 게시글로 조회되게 변경
- 사용하지않는 UserDTO RedisHash 삭제
- ProductSearchMapper selectProducts 인자 ProductDTO -> productStatus 변경
- ProductSearchServiceImpl init함수에서 게시글 최대 2000개 redisTemplate에 push
- addRedisKeys, findAllProductsByCacheId 게시글 추가시 캐시 추가하는 함수, 캐싱되어있는 게시글 반환 함수 추가
- RedisKeyFactory redisTemplate 에 key 저장시 종류에따라 key반환하는 클래스 생성
junshock5 added a commit that referenced this issue Sep 8, 2020
- redisTemplate과 Product관련 데이터를 reids에 CRUD하는 것들을 ProdcutDao로 변경
- Product 검색시 필요한 상수 데이터들 ProductDTO로 변경 (검색 갯수, 캐시명, 카테고리 정보)
junshock5 added a commit that referenced this issue Sep 12, 2020
- ProductDao 추가, RedisTemplate을 이용한 product key 발급 및 bean 등록시 DEFAULT_PRODUCT_SEARCH_CACHE_KEY에 최대 2000개 게시글 등록
- 프로그램 종료시 DEFAULT_PRODUCT_SEARCH_CACHE_KEY 삭제
- 물품 삭제시 물품id값을 이용해  RedisTemplate에 등록되어있는 value의 index를 찾아 삭제
- 물품 조회시 DEFAULT_PRODUCT_SEARCH_CACHE_KEY에 있는 values 를 조회
- 물품 등록시 Product auto-Increment index를 가지고  RedisTemplate에 등록
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
working 작업중입니다.
Projects
None yet
Development

No branches or pull requests

1 participant