2013-02-12 2 views
1

내 웹 사이트의 캐싱 기능을 처리하는 데 AppFabric을 사용하고 있습니다. 내 데이터베이스 내의 제품 테이블 내에 변경 사항이 있으면 제품 캐시를 업데이트하고 싶습니다. 내가 구현에 대한 읽기 읽기를 통해하지만 발견에 대한 책을 읽은에서 : 나는 한 번 변화에 업데이트 될 수있는 제품 캐시를 원하는만큼 내 문제를 해결할 것 같은이 보이지 않는다데이터베이스 테이블 업데이트시 캐시 업데이트

Read: Called when a cache client requests a cached item that does not currently exist in the associated cache. 

테이블이 발견되었지만 처음에는 캐시에 이 반드시 존재하지는 않습니다. AppFabric 기능을 사용하여이 작업을 수행 할 수있는 방법이 있습니까?

답변

0

기본적으로 SqlCacheDependency 메커니즘이 필요합니다. 과거에는 In Memory Cache에 매우 유용했습니다.

그러나 AppFabric 캐싱에는 SqlCacheDependency 메커니즘 (또는 모든 종류의 종속성)에 대한 지원이 없습니다. 직접 작성해야합니다 ...

또한 캐시가 누락 된 항목을 감지하고 공급자에게 데이터로드를 수행하도록 호출합니다. 30 분의 만료 항목을 추가하면 공급자는 만료되기 전에 다시로드하려고 시도하지 않습니다.

결국 캐시 숨기기 공급자를 사용하여 캐시를 업데이트하려고 할 수 있습니다. 정기적으로 데이터베이스를 업데이트합니다.

+0

후기 쓰기는 캐시를 업데이트하지 않습니다. write behind는 캐시 업데이트에 따라 데이터 저장소를 업데이트합니다. 처음부터 읽지 않은 캐시 항목이없는 경우 읽기 통과가 해당 항목을 감지합니다. 이것은 내 문제입니다. – Neeta

+0

예.하지만 분산 캐시로 작업하면 부실 데이터로 작업해야합니다. 공급자를 사용하거나 캐시에서 데이터 항목 만료로 인해 또는 데이터베이스에 오래된 데이터가있는 위치를 선택할 수 없습니다 (공급자가 주기적으로 데이터를 제공하므로). Design WebFarms 및 IS는 기존의 수직 웹 사이트 (webserver + DB)와 약간 다릅니다. – Cybermaxs

관련 문제