inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴

공통 코드의 단점 해결 방안 2

TTL 캐싱에 대한 질문

78

pshpark12345

작성한 질문수 1

0

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

sql mysql dbms/rdbms 소프트웨어-설계 SQLD

답변 1

0

y2gcoder

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

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

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

감사합니다.

실제 FK제약조건을 설정하지 않는이유

0

30

2

히스토리 관련 질문

0

57

2

통계 데이터 수정 질문

1

63

2

공통 코드에서 Redis Pub/Sub은 최근 실무에서 쓰이진 않나요?

0

133

2

DELETE -> SELECT 질문 드립니다.

0

48

1

상속 관계 모델링의 적용 기준 질문

0

75

1

공통 코드 사용시 컬럼 타입 설정

0

83

1

history_creted_at과 valid_from

1

65

2

함수 기반 인덱스 (Function-Based Index)

0

68

1

추후 강의 질문있습니다

0

124

2

실무 통계 질문(고민) 드립니다..!

0

91

2

Json 컬럼의 객체 맵핑

0

64

1

[Deprecated] 오타 제보

0

86

1

오타 제보

0

73

2

category_path 테이블에서 idx_descendant 인덱스를 생성하는 이유가 궁금합니다

0

96

2

물리적으로 외래 키 제약 조건을 설정하지 않을 때

0

97

1

`전체 행 스냅샷 이력 테이블`의 대상 테이블 칼럼 변경

1

84

1

common_code_detail의 code 변경 가능성

1

112

1

[해결책 - 코드값 분리] 중 orders(order_status) - common_code(code) 타입 불일치 제보

0

87

1

이미 문자열 타입인 컬럼을 캐스팅하는 이유

0

106

2

계층 구조 모델링 기타 방법들

0

106

1

섹션 9의 퀴즈가 영어로 출력되요.

0

106

2

섹션 6 SOFT DELETE) UNIQUE 제약 조건 + 가상 컬럼

0

77

1

섹션2 공통 코드) 애플리케이션 ENUM을 API에 그대로 노출한다면?

0

126

1