2015-02-06 2 views
2

다음과 같은 전략을 사용하는 경우 : (System.Web.Caching.Cache 같은)데이터베이스 캐시 무효화 전략과 타이밍

  • 응용 프로그램 레벨 캐시 SQL 쿼리를 저장할 수 있습니다.
  • 각 캐시 항목은 반환 된 행의 기본 키에 연결된 CacheDependancy와 함께 저장됩니다.
  • 변경 사항을 수신 대기하는 특정 쿼리에 대해 캐시를 무효화하는 데이터베이스 수신기입니다.

이 방법은 매우 효과적이지만 캐시는 분명히 immediatly 무효화되는 경우가 있습니다.

예를 들어 사용자가 장바구니에 제품을 추가하는 경우입니다. 사용자는 장바구니의 내용을 보여주는 새로운 페이지로 이동합니다. 이 경우 캐시는 시간이 지나면 무효화되지 않고 새로 추가 된 항목은 존재하지 않습니다. 페이지를 새로 고침하면 청취자가 실행 시간을 가지며 항목이 표시됩니다.

저는이 문제에 대한 해결책을 찾기 위해 애 쓰고 있습니다. 캐시 무효화가있는 단점입니까 아니면 무언가를 놓치고 있습니까?

답변

1

모든 캐싱 시나리오에 대한 일반적인 해결책은 거의 없을 것입니다. 객체를 캐시해야하는 기간에 따라 Session/HttpContext와 같은 일반적인 방법을 사용하여 응용 프로그램에 맞게 솔루션을 조정하는 것이 좋습니다.

장바구니 항목을 세션에 배치 할 수있는 항목은 요청 시간 동안 캐시 될 항목은 HttpContext.Current.Items 등을 사용할 수 있습니다. CacheDependency는 자주 변경되지 않는 더 정적 인 항목에 사용되므로 지연 상관 없어요.