2012-01-02 4 views
1

데이터베이스에 프로젝트를 저장하는 웹 응용 프로그램이 있습니다. 성능 향상을 위해 App Farbic Caching을 사용하기로 결정했습니다. 아래의 (또는 어떤 기준으로 결정해야하는지) 가장 좋은 패턴은 무엇입니까? 캐시에 별도로 각 프로젝트를 저장하십시오. 전체 목록을 캐시에 저장하십시오 (즉, 항목 목록을 나타내는 하나의 키)?Appfabric의 캐싱 패턴 (전체 목록과 개별 항목)

많은 감사,

조셉

답변

1

상황에 따라 다르다. 몇 가지 고려 사항이 있습니다. 목록이 잠재적으로 방대한 경우 개별 캐시 키의 내용이 매우 커질 수 있습니다 (로컬 캐시를 사용하면 분명히 완화 될 수 있음). 이와 같이 대형 객체 그래프를 직렬화하고 비 직렬화하면 클라이언트에서 시간과 자원을 소비하게됩니다. 그러나 응용 프로그램에서 캐시에서 역 직렬화 된 후에 목록에 객체 쿼리를 실행하려는 경우가 있으므로이 작업을 수행 할 수 있습니다. 당신이 목록에 대해 실행할 쿼리가 잘 정의되어있는 경우

, 당신은 다른 캐시 키 아래의 목록의 여러 맛을 캐시 할 수 - 대신 , 당신은 PeopleMale, PeopleFemale, PeopleAmerican을 가질 수있다, PeopleIrish, PeopleFrench 등 이렇게하면 동일한 사람이 여러 캐시 된 사람 목록에 나타날 수 있으므로이 사람을 관리해야합니다. 예를 들어, 나는 이중 미국과 아일랜드 시민권을 가진 여성이 있습니다. 여성의 성별 변경하기 위해, 그래서 내가 그 사람을 편집하고 시민이 네덜란드어로 변경되는 경우, 4 개의 키가 PeopleMale, PeopleFemale, PeopleAmerican, PeopleIrish를 무효화되는 것을 보장 할 필요가있을 것이다.

위 예제는 가치가 있든 없든 정확한 사용 사례에 따라 관리가 까다로울 수 있습니다.

일반적으로 가능한 한 상대적으로 비 휘발성 참조 데이터 (국가, 상태 유형, 국적 등)에 대한 목록이 포함 된 캐시 키만 사용하는 것이 좋습니다.

희망이 도움이됩니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 매우 감사 –