2011-07-16 1 views
0

Google 시스템은 Azure에서 AppFabric Caching을 사용하며 동일한 캐시 된 값을 공유하는 여러 종류의 앱과 역할을 보유하고 있습니다. 모든 키를 구성하는 방법에 대한 몇 가지 권장 사항을 찾고 있는데 변경된 항목을 무효화/플러시 할 수있는 기능이 있습니다.캐시 키를 구성하고 유지 관리하고 플러시하려면 어떻게합니까?

저는 키를 생성하는 일련의 메소드로 정적 클래스를 가지고 있다고 생각했습니다. 예를 들면 다음과 같습니다.

string CreateUserByIdKey(int userId) - Returns "User_5" 
string CreateWidgetsByCompanyKey(int companyId) - Returns "Widgets_Company_5" 

이 방법을 사용하면 다른 응용 프로그램에서 키를 만들고 사용할 수 있습니다. 그러나 이것은 매우 우아하고 유지 보수가 용이하지 않습니다. 또한 데이터를 업데이트 할 때 이러한 키 중 어느 것이 무효화되어야 하는지를 아는 특수 플러시 메서드를 만들어야합니다.

더 좋은 방법은 무엇입니까?

답변

1

우리의 접근 방식은 전략 확장자를 가진 CacheManager을 사용하는 것입니다. CacheManager는 솔루션의 핵심 부분에 있으며 핵심은 모든 역할을 통해 참조됩니다.

캐시 키를 생성하는 전략과 같이 공유되는 항목과 끝점 이름까지 우리는 WellKnownComponents의 목록을 가지고 있습니다. 이것은 부분 클래스로 확장 할 수있는 TT 생성 파일 (파일)입니다.

내가 당신의 경우에 할 일은 캐시 키 ID를 잘 알려진 구성 요소 클래스에 생성하는 기능을 추가 한 다음 응용 프로그램을 통해 참조하는 것입니다.

var seeker = CacheManager.Get<RequestOnly>(WellKnownComponents.Seeker.Caching.GetSeekerKey(seekerId),() => GetSeekerFromDataBase(seekerId)); 

대략 다음과 같습니다. 네, 여전히 무효화를위한 특별한 플러시 메소드가 필요하지만, 중요한 부분 (예 : 솔루션이 아닌 하나의 구성 요소)은 중요하고 관련성이 높은 부분을 분리하고 결합 할 수 있다는 것입니다.