Skip to content

캐싱전략

박지율 edited this page Nov 10, 2021 · 5 revisions

목적

회사명 자동완성

설명

RAM 처럼 빠르게 접근할 수 있는 스토리지에 저장해서, 이후에 해당 데이터에 대한 요청이 있을 경우에 빠르게 데이터를 가져올 수 있도록 구현했습니다.

구조

  • Read & Write

기존의 Look aside cache (Lazy Loading)에서 조금 변경해서 사용했습니다. 우리가 현재 구현하는 서비스는 새로운 회사명 입력을 하는 API가 있기 때문에 데이터를 쓸 때는 Redis와 Mysql에 둘 다 저장했습니다. 레디스와 DB서버가 항상 최신화 되고 데이터에 쓸 때는 redis에 저장하는 동시에 mysql에 저장하는 방식으로 백업을 할 수 있다는 점이 우리 프로젝트에 적합하다고 생각했기 때문입니다. 물론 새로운 회사명 입력을 하는 API를 자주 호출한다면 Mysql과 Redis에 계속 insert하는 문제가 생기지만, 우리가 Write 기능보단 Read 기능에 초점을 두었기 때문에 Read할 때는 Redis를 사용하는 장점을 얻을 수 있다는 점에서 위와 같은 로직을 사용했습니다.

PostMan을 활용한 테스트

회사명 자동완성 기능을 구현할 때 어떤 형태의 데이터베이스가 유리한지 파악하기 위해 직접 테스트해보았습니다.

  • Mysql(DiskDB)

    • 데이터 100개

    • 데이터 1000개

  • Redis(InmemoryDB)

    • 데이터 100개

    • 데이터 1000개