Redis 와 캐싱 · 캐시가 왜 어려운가 · 퀴즈
퀴즈: 캐시의 어려움
문항 5개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
캐시 전략이 본질적으로 줄타기인 두 값은?
- 메모리와 CPU
- 읽기와 쓰기
- 스테일과 미스
- 가용성과 일관성
TTL 방식 무효화가 잘 맞는 데이터는?
- 계좌 잔액
- 인기 게시물 목록
- 결제 상태
- 재고 수량
버전 키(versioned key) 방식의 가장 큰 장점은?
- 옛 키가 즉시 사라져 메모리를 아낀다
- 삭제를 직접 하지 않아도 되고 무효화-재조회 경쟁 조건에 강하다
- 키가 매번 달라져 TTL 이 필요 없다
- 쓰기 순서가 정해져 분산 락이 필요 없다
cache-aside 에서 쓰기 시 캐시를 갱신하지 않고 삭제하는 이유는?
- DEL 이 SET 보다 항상 저렴한 연산이기 때문에
- 캐시 메모리 사용량을 즉시 0으로 만들기 때문에
- 동시 쓰기에서 직접 갱신보다 옛 값이 고정되는 경합 창을 줄이고, 다음 미스가 원본을 다시 읽게 하기 때문
- 삭제하는 순간 모든 키에 새 TTL 이 설정되기 때문에
무효화가 어려운 근본 이유로 옳지 않은 것은?
- 캐시가 여러 서버·계층에 분산돼 원자적 무효화가 분산 합의 문제가 된다
- 무효화와 재조회가 엇갈려 지운 값이 되살아날 수 있다
- 하나의 원본이 여러 캐시 항목에 흩어져 의존성을 다 파악하기 어렵다
- Redis 가 무효화 명령을 제공하지 않는다