Open minkukjo opened 5 months ago
Cache-Aside
방식은 동의invalidate
보다는 Write through
를 함으로써 Cache-Aside 방식보완 가능Cache-Aside
방식만 사용하면, 동시에 여러 요청이 들어왔는데 캐시가 없을 때 같은 DB 쿼리가 여러번 발생할 수 있다.
캐시 저장 -> DB 저장
이 아닌, DB 저장 -> 캐시 저장
순서로 해야할 듯Write-Through
의 단점은 사용하지 않는 캐시인데 캐시에 저장되어 불필요한 캐시 용량 증가로 이어질 수도 있다.LBS
에서 사업장 정보 Redis
를 바로 호출하지 않도록 분리할 것 같다
LBS
에서 사업장 정보 서비스
의 API 호출을 통해 실행될 듯사업장 정보 Redis
를 다른 곳들에서 사용한다면, 사업장 정보 서비스
에서 데이터 구조를 변경할 때 큰 제약사항이 된다.
사업장 정보 Redis
에 접근하는 모든 서비스를 찾아서 데이터 구조 변경 가능 여부 확인 요청해야함.GEOADD places 127.064053 37.508645 "Park Hyatt Seoul"
GEOADD places 127.060896 37.508899 "Grand InterContinental Seoul Parnas"
GEOADD places 127.926644 37.525339 "Conrad Seoul"
GEOADD places 126.929140 37.525198 "Fairmont Ambassador Seoul"
GEOADD places XX 126.926667 37.525250 "Conrad Seoul"
GEOSEARCH places FROMLONLAT 126.9243 37.5217 BYRADIUS 1 km
GEOSEARCH - 여의도역 기준으로 호텔 검색 결과
요구사항!
질문 타임
기능 요구 사항
비기능 요구사항
QPS 계산
데이터 모델
시스템 구성
사업장 검색 알고리즘
방안 1
방안 2
방안 3
방안4
방안 5
상세 설계
LBS에서 사업자 정보를 캐싱해두는 방식에서 무효화를 통한 방식을 했던 이유는 아무래도 서비스간 의존을 적게 하여 장애 전파를 막는 것이 가장 큰 목적이었던 것이 아닐까 싶다.
보고 느낀 점