Azure 역할 내 캐시의 영역 및 태깅
중요
모든 새 개발에서는 Azure Redis Cache를 사용하는 것이 좋습니다. Azure Cache 제품을 선택하는 방법에 대한 현재 설명서 및 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.
In-Role Cache는 사용자 정의 지역의 생성 및 사용을 지원 합니다. 이 기능은 역할 기반 In-Role 캐시에 있는 캐시에서 사용할 수 있습니다. 영역은 캐시된 항목의 하위 그룹입니다. 또한 영역은 태그라는 추가 설명 문자열로 캐시된 항목에 대한 주석을 지원합니다. 지역은 해당 지역에서 태그가 지정된 항목에 검색 작업을 수행하는 기능을 지원합니다.
영역 고려 사항
지역은 선택 사항입니다. 사용하려면 CreateRegion 메서드를 사용하여 코드에서 명시적으로 만듭니다. 영역이 만들어지면 영역에 삽입된 개체에 태그를 추가할 수 있습니다. 지역 이름을 허용하는 Add 및 Put 메서드에 오버로드가 있습니다. 지정된 태그가 있는 개체의 영역을 검색하려면 GetObjectsByTag, GetObjectsByAnyTag 및 GetObjectsByAllTags 메서드를 사용합니다.
검색 기능의 아키텍처 요구 사항 때문에 영역의 개체는 단일 캐시 서버로 제한됩니다. Azure 배포에서 이는 전체 지역이 단일 서버에 상주한다는 것을 의미합니다. 고가용성을 사용하도록 설정하면 영역의 백업이 다른 서버에 존재합니다. Azure에서 이러한 서버는 In-Role Cache를 호스트하는 역할의 가상 머신 인스턴스입니다. 이 동작은 영역이 사용되지 않는 시나리오와 다릅니다. 이 시나리오에서는 분산된 메모리 내 캐시에 있는 새 항목이 사용 가능한 캐시 서버에 배치됩니다.
경고
영역은 캐시 서버 중 하나에 단일 엔터티로 존재해야 합니다. 따라서 단일 역할 인스턴스에서 사용할 수 있는 캐싱 메모리의 양은 예상된 가장 큰 지역보다 커야 합니다. 좀 더 작은 여러 영역을 사용하면 분산된 캐시를 활용할 수 있을 뿐만 아니라 영역 및 태깅의 이점도 얻을 수 있습니다.
예
다음 예제에서는 Test
라는 영역을 만드는 방법을 보여 줍니다.
DataCache cache = new DataCache("default");
cache.CreateRegion("Test");
다음 예제에서는 태그를 사용하여 Test
영역에 개체 세 개를 추가하는 방법을 보여 줍니다.
List<DataCacheTag> tagList1 = new List<DataCacheTag>()
{
new DataCacheTag("Tag1"),
new DataCacheTag("Tag2")
};
List<DataCacheTag> tagList2 = new List<DataCacheTag>()
{
new DataCacheTag("Tag3")
};
cache.Put("Key1", "Value1", tagList1, "Test");
cache.Put("Key2", "Value2", tagList1, "Test");
cache.Put("Key3", "Value3", tagList2, "Test");
다음 예제에서는 Test
태그가 있는 모든 개체의 Tag1
영역을 검색하는 방법을 보여 줍니다.
foreach (KeyValuePair<string, object> result in
cache.GetObjectsByTag(new DataCacheTag("Tag1"), "Test"))
{
string keyValue = result.Key;
string objectValue = result.Value.ToString();
}