예상했던 것처럼 간단하지는 않지만 할 수 있습니다.
개체가 AppFabric 캐시에 추가되면 영역을 지정하는지 여부에 관계없이 영역으로 이동합니다. 캐시가 만들어지면 기본 영역 집합이 만들어집니다 (내 시험 장치에 1024 개, Default_Region_0000
, Default_Region_0001
등). 캐시에 항목이 추가 될 때마다 다음 중 어떤 것을 결정하는 알고리즘이 있다고 가정합니다. 그들이 들어가는 지역.
그래서, 이름이 지역의 외부 캐시에 객체의 총 수를 찾기 위해, 기본 지역의 모든 하나 GetObjectsInRegion를 실행해야합니다
int totalItemCount = 0;
foreach (string regionName in cache.GetSystemRegions())
{
totalItemCount += cache.GetObjectsInRegion(regionName).Count();
}
이 1024 개 지역의 복잡성을 감안할 때, I 모든 객체가 명명 된 영역에 있어야한다는 설득력있는 사례를 만들 수 있다고 생각합니다. 이렇게하는 데 비용이 들지 않으며 캐시에 얼마나 많은 객체가 있는지 쉽게 파악할 수 있다는 이점이 있습니다. 이것이 일반적인 요구 사항이라면 DataCache 클래스의 확장 메서드로 생각할 수도 있습니다.
매력처럼 작동합니다. 매우 감사드립니다. – downatone
명명 된 영역은 참여 노드를 통해 배포되지 않으므로 분산 된 클러스터를 크게 평가 절하합니다. – andrewbadera
LINQified :'cache.GetSystemRegions(). SelectMany (regionName => cache.GetObjectsInRegion (regionName)). –