캐시의 일반적인 사용예시
읽기는 많으나 쓰기는 적은 데이터를 캐싱한다.
ex> 기준정보성 데이터(카테고리, 메뉴)
ex> 기준정보성 데이터(카테고리, 메뉴)
주의사항: 캐시의 양은 적당하게 유지한다. 너무 많으면 메모리 낭비
병목현상 줄이기 위해서 쓰이며 즉, RDBMS 쪽의 질의를 줄이는 것이 목표이다.
자바에서는 간단히 해시테이블로 구현이 가능하고, 필요한 기능은 일단, 캐시의 적재 DB에서 메모리로 캐싱하고, 후에 캐시와 DB간에 데이터 질의를 통하여 두 데이터간에 데이터 싱크를 맞추는 기능 보통 일반적인 캐시를 적재하는 시점은 초기화시에 적재, 사용자가 요청시엔 캐시가 적재되어 있는지 판단 후 적재한다.
1.데이터가 적재되지 않았으면 데이터 저장소(DB)에서 데이터 가져오기
2.적재되어 있으면 데이터 반환
3.DB의 데이터 변경 됐을때, 캐시에 반영(프로그램에선 쓰기시에 양쪽에 반영하는 로직) – DB 핸들링 한후 캐시로드함.
4.캐시의 데이터가 수정이 되었을때(?), 캐시의 데이터를 DB에 반영하는 로직. – 싱크맞추기 어려울 경우 제외함. 캐시는 readonly로 처리함.
5.위 3,4번의 로직에는 시점의 문제가 있을 수 있으므로 싱크로직이 필요함.(어떤 데이터가 더 최신의 것인가?라는 문제)
6.캐시 유효시간을 줘서 정해진 시간마다 캐시적재를 수행한다.