Области и теги для управляемой службы кэша Azure

Важно!

Корпорация Майкрософт рекомендует все новые разработки использовать кэш Redis для Azure. Текущая документация и рекомендации по выбору предложения кэша Azure см. в статье о том, какое предложение кэша Azure подходит для меня?

Microsoft Azure Cache поддерживает создание и использование определяемых пользователем регионов. Область — это подгруппа кэшированных элементов. Области также дополнительно поддерживают пометку кэшированных элементов описательными строками — тегами. В рамках региона можно выполнять поиск любого элемента, который помечен тегом.

Вопросы работы с областями

Регионы являются необязательными; Если вы хотите использовать их, явно создайте их в коде с помощью метода CreateRegion . После создания области вы можете добавлять теги к объектам, вставляемым в область. Существуют перегрузки методов Add и Put , которые принимают имя региона. Для поиска области объектов с заданным тегом используйте методы GetObjectsByTag, GetObjectsByAnyTag и GetObjectsByAllTags.

В управляемая служба кэша память кэша распределяется по разным областям службы. В силу архитектурных особенностей функции поиска объекты, относящиеся к одной области, хранятся в одной области службы кэша. Если включен высокий уровень доступности, в другой области памяти службы кэша будет находиться резервная копия области. Это поведение отличается от ситуации, где области не используются. В этом случае новые элементы в кэше распределенного кэша по всем областям памяти службы кэша.

Предупреждение

Так как все элементы, хранящиеся в области, должны находиться в одной области памяти службы кэша, возможно вытеснение элементов из кэша даже при достаточном объеме свободной памяти. Используйте больше областей меньшего размера, чтобы использовать преимущества областей и тегов.

Примеры

В следующем примере показывается создание области 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();
}

См. также:

Другие ресурсы

Функции управляемой службы кэша Azure