강의

멘토링

커뮤니티

Inflearn Community Q&A

pshpark123453194's profile image
pshpark123453194

asked

Young-han Kim's Practical Database - Design Part 2, 9 Design Patterns You Must Encounter in Practice

Solutions for Disadvantages of Common Code 2

TTL 캐싱에 대한 질문

Written on

·

41

0

안녕하세요! 강의를 듣다보니 TTL 캐싱을 사용할 때에도 오류가능성이 존재하지 않나 싶어 질문 남깁니다. TTL을 1분이라 가정했을 때 TTL이 지나기 전에 DB의 값이 바뀌고, 그 이후 TTL이 지나기 전에 캐싱된 값을 사용하게 된다면 DB에 있는 값과 캐싱되어있는 값에는 차이가 존재하지 않나요? 이에 대해선 어떻게 구현되어있는지 궁금합니다

sqlmysqldbms/rdbms소프트웨어-설계SQLD

Answer 1

0

안녕하세요. pshpark12345님, 공식 서포터즈 y2gcoder입니다.

말씀하신 것처럼 TTL 을 1분으로 설정했을 때는 캐시가 갱신되기 전 불일치 구간이 나타날 수 있습니다. 이에 대해서는 TTL을 줄이거나, 캐시되어있는 값을 수정할 때 모든 캐시를 무효화하는(이 때는 로컬 캐시일 경우 해당 서버의 캐시만 무효화되게 됩니다! 해결해주기 위해서는 강의에서 언급한 레디스를 통해 캐시를 중앙관리하는 방법을 더할 수도 있습니다) 방식을 사용할 수도 있습니다!

공통 코드에서 캐시를 적용하고, TTL을 적용한 이유는 강의에서 언급한 공통 코드의 특성으로 인해 말씀하신 문제점을 어느정도 감안할 수 있기 때문입니다! 정말 1초도 어긋나서는 안되는 중요한 데이터라면 캐시하는 것이 좋을 지에 대해 고민해봐야 합니다 🙂

감사합니다.

pshpark123453194's profile image
pshpark123453194

asked

Ask a question