개발놀이터
Redis for Client Side Caching으로 응답시간 개선하기 본문
사이드 프로젝트인 온라인 쇼핑몰에 Redis를 이용해 Client Side Caching을 적용했습니다.
Redis 6에 추가된 RESP3 프로토콜을 사용했고 Redis Client인 Spring Boot에서 CacheFront<K, V> 를 이용해 클라이언트 사이드 캐싱을 구현할 수 있었습니다.
wrk2를 이용해 API 테스트를 진행했습니다.
- 스레드 개수 : 8개
- 동시 연결 : 50개
- 지속 시간 : 60초
- 초당 요청 수 : 1000개
성능 개선
동일한 기준에서 테스트를 진행했을 때 Redis를 순수하게 이용했을 때와 local caching을 이용했고, 이로인해 Latency는 평균 80% 최대 130% 개선하였고, throughput은 평균 4% 최대 250% 개선하였습니다.
이로 인해 얻은 것
기존 프로젝트에서 RDBMS에서 처리하던 요청을 Redis로 사용하는 것도 성능적인 측면에서 큰 개선을 이뤄냈지만 Redis를 사용하는 것보다 local cache를 사용함으로써 평균적인 성능을 개선할 수 있다는 것에서 크게 놀라게 되었습니다.
서버의 개수를 늘리거나 컴퓨팅 성능을 좋게 만드는 것 이외에 코드를 개선함으로써 서버의 응답시간과 처리량을 늘렸다는 것에서 좋은 공부가 되었습니다.
블로그 포스팅
https://coding-review.tistory.com/524
https://coding-review.tistory.com/525
'사이드 프로젝트 > 온라인 쇼핑몰 ver.6' 카테고리의 다른 글
Redis Sentinel로 고가용성 유지하기 (with Slack) (0) | 2024.07.17 |
---|---|
Redis를 이용해 대기열 만들기 (0) | 2024.07.08 |
JPA Pessimistic Lock을 Redis 분산락으로 교체하기 (0) | 2024.07.06 |