Condividi tramite


Aree e tag in Cache nel ruolo di Azure

Importante

Microsoft consiglia tutti i nuovi sviluppi di usare Cache Redis di Azure. Per la documentazione e le indicazioni correnti sulla scelta di un'offerta di Cache di Azure, vedere Quale offerta di Cache di Azure è adatta per l'utente?

In-Role Cache supporta la creazione e l'uso di aree definite dall'utente. Questa funzionalità è disponibile per le cache che si trovano nella cache basata su ruoli In-Role Cache. Un'area è un sottogruppo di elementi memorizzati nella cache. Inoltre, le aree supportano l'annotazione di elementi memorizzati nella cache con stringhe descrittive aggiuntive denominate tag, Le aree supportano l'esecuzione di operazioni di ricerca in tutti gli elementi con tag di tale area.

Considerazioni sulle aree

Le aree sono facoltative; se si desidera usarli, crearli in modo esplicito nel codice con il metodo CreateRegion . Dopo la creazione di un'area, si possono aggiungere tag a oggetti inseriti in questa area. Esistono overload nei metodi Add e Put che accettano un nome di area. Per cercare oggetti in un'area con un tag specificato, usare i metodi GetObjectsByTag, GetObjectsByAnyTag e GetObjectsByAllTags.

A causa dei requisiti di architettura della funzionalità di ricerca, gli oggetti in un'area sono limitati a un singolo server di cache. In una distribuzione di Azure, ciò significa che l'intera area risiede in un singolo server. Se è abilitata la disponibilità elevata, è presente un backup dell'area in un altro server. In Azure questi server sono istanze di macchine virtuali del ruolo che ospita In-Role Cache. Questo comportamento è diverso dallo scenario in cui non vengono usate aree. In tale scenario i nuovi elementi nella cache in memoria distribuita vengono posizionati in uno dei server di cache disponibili.

Avviso

Un'area deve esistere come entità singola in uno dei server di cache. Pertanto, la quantità di memoria di memorizzazione nella cache disponibile in qualsiasi istanza del ruolo singola deve essere maggiore dell'area prevista più grande. Usare possibilmente più aree di dimensioni ridotte per usufruire dei vantaggi delle aree e dei tag, nonché della cache distribuita.

Esempio

Il seguente esempio illustra come creare un'area denominata Test.

DataCache cache = new DataCache("default");
cache.CreateRegion("Test");

Il seguente esempio illustra come aggiungere tre oggetti all'area Test con tag.

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");

Il seguente esempio illustra come cercare nell'area Test tutti gli oggetti con tag Tag1.

foreach (KeyValuePair<string, object> result in 
    cache.GetObjectsByTag(new DataCacheTag("Tag1"), "Test"))
{
    string keyValue = result.Key;
    string objectValue = result.Value.ToString();
}

Vedere anche

Concetti

Funzionalità di Cache nel ruolo in Cache di Azure