Informazioni su Cache nel ruolo per Cache 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 possibilità di ospitare servizi di memorizzazione nella cache nei ruoli di Azure. In questo modello, la cache fa parte del servizio cloud, Viene selezionato un ruolo all'interno del servizio cloud per ospitare In-Role Cache. Le istanze in esecuzione di questo ruolo vengono aggiunte alle risorse di memoria in modo da formare un cluster di cache Questo cluster di cache privato è disponibile solo per i ruoli all'interno della stessa distribuzione. Esistono due topologie di distribuzione principali per In-Role Cache: con percorso condiviso e dedicato. I ruoli con risorse condivise ospitano anche altri servizi e codice dell'applicazione che non usano la memorizzazione nella cache. I ruoli dedicati sono ruoli di lavoro usati solo per la memorizzazione nella cache. Gli argomenti seguenti illustrano più dettagliatamente queste topologie di memorizzazione nella cache.

Per una procedura dettagliata della cache basata sui ruoli di In-Role, vedere Come usare Cache In-Role di Azure. Per esempi scaricabili, vedere Esempi di Cache di Azure In-Role.

Concetti relativi alla cache di In-Role

Questa sezione offre una panoramica di tre concetti chiave correlati alla cache basata sui ruoli In-Role.

  1. Cluster di cache

  2. Cache denominate

  3. Client della cache

Cluster di cache

I ruoli di Azure hanno una o più istanze. Ciascuna istanza rappresenta una macchina virtuale configurata per ospitare il ruolo specificato. Quando viene eseguito un ruolo con In-Role Cache abilitata in più istanze, viene creato un cluster di cache. Un cluster di cache costituisce un servizio di memorizzazione nella cache distribuito che usa la memoria combinata di tutti i computer presenti nel cluster. Le applicazioni possono aggiungere e recuperare elementi dal cluster di cache senza dover conoscere il computer in cui tali elementi sono memorizzati. Se è abilitata la funzionalità di disponibilità elevata, una copia di backup dell'elemento viene automaticamente memorizzata in un'altra istanza della macchina virtuale.

Nota

Per ciascun servizio cloud è supportato un unico cluster di cache. È possibile impostare più cluster di cache in un servizio cloud specificando account di archiviazione distinti per ogni ruolo. Questa configurazione non è tuttavia supportata.

Quando si abilita In-Role Cache in un ruolo di Azure, si specifica la quantità di memoria che può essere usata per la memorizzazione nella cache. In uno scenario basato su risorse condivise è necessario scegliere una percentuale di memoria disponibile nelle macchine virtuali che ospitano il ruolo. In uno scenario basato su ruolo dedicato tutta la memoria disponibile nelle macchine virtuali viene usata per la memorizzazione nella cache. La memoria disponibile è tuttavia sempre inferiore rispetto alla memoria fisica totale della macchina virtuale a causa dei requisiti di memoria del sistema operativo.

Pertanto, la quantità totale di memoria di memorizzazione nella cache dipende dalla memoria del ruolo riservata per la memorizzazione nella cache moltiplicata per il numero di ruoli. È possibile ridimensionare in modo efficace la memoria totale di memorizzazione nella cache aumentando o riducendo il numero di istanze in esecuzione per tale ruolo.

Avviso

Quando si riducono le istanze in esecuzione del ruolo che ospita In-Role Cache, ridurre il numero di istanze di non più di tre alla volta. Una volta completata la modifica, è possibile rimuovere fino a tre istanze in esecuzione aggiuntive; ripetere l'operazione fino a raggiungere il numero di istanze in esecuzione richiesto. La rimozione contemporanea di più di tre istanze causa l'instabilità del cluster di cache.

Ogni cluster di cache gestisce informazioni condivise sullo stato di runtime del cluster in Archiviazione di Azure. Durante lo sviluppo, è possibile usare l'emulatore di archiviazione di Azure. I ruoli distribuiti devono specificare un account di archiviazione di Azure valido. In Visual Studio è possibile specificare l'account di archiviazione appropriato nella scheda Caching delle proprietà del ruolo.

Cache denominate

In ciascun cluster di cache è presente almeno una cache denominata default. Con cache di In-Role basata sui ruoli, è anche possibile aggiungere altre cache denominate. Per ciascuna cache è possibile modificare diverse impostazioni. Lo screenshot seguente mostra la sezione Named Cache Impostazioni della scheda Caching nelle impostazioni del ruolo Visual Studio.

Caching Properties for Named Caches

In Visual Studio fare clic sul pulsante Aggiungi cache denominata per aggiungere altre cache denominate. Nell'esempio precedente sono state aggiunte due cache denominate, NamedCache1 e NamedCache2. Per ciascuna cache sono definite impostazioni diverse. È possibile modificare le impostazioni selezionando e modificando i campi specifici all'interno della tabella.

Le cache denominate offrono flessibilità in fase di progettazione delle applicazioni, poiché per ciascuna di esse sono definite proprietà specifiche. Una cache può ad esempio abilitare Disponibilità elevata per sfruttare i vantaggi della disponibilità elevata. Altre cache potrebbero non richiedere questa impostazione, mentre la disponibilità elevata richiede il doppio della memoria per ciascun elemento memorizzato nella cache. Per un impiego ottimale delle risorse è consigliabile usare la disponibilità elevata solo nelle cache che la richiedono. In altri scenari simili a quelli descritti possono essere usate più cache con proprietà diverse in grado di soddisfare i requisiti delle applicazioni.

Client della cache

Un client della cache costituisce un codice dell'applicazione in grado di memorizzare e recuperare gli elementi dal cluster di cache. Con In-Role cache nei ruoli, i client della cache devono far parte dello stesso ruolo di memorizzazione nella cache o incorporati in altri ruoli nella distribuzione. I client della cache possono essere configurati usando i file di configurazione dell'applicazione o i file di configurazione Web. Per altre informazioni, vedere Procedura: Preparare Visual Studio per l'uso di Cache In-Role di Azure. Nell'esempio seguente viene illustrato l'elemento dataCacheClient in un file di configurazione.

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="CachingRole1" />
    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
  </dataCacheClient>
</dataCacheClients>

Nell'esempio precedente l'elemento autoDiscover ha un attributo identificatore impostato su CachingRole1. Questo identificatore specifica che ha CachingRole1 In-Role Cache abilitata. e fornisce il percorso del server di cache. Il client della cache usa CachingRole1 automaticamente in tutte le operazioni di memorizzazione nella cache.

Una volta configurato il client della cache, questo può accedere a qualsiasi cache in base al nome. Il seguente esempio esegue l'accesso alla cache NamedCache1 e aggiunge a questa un elemento.

DataCache cache = new DataCache("NamedCache1", "default");
cache.Put("testkey", "testobject");

Il costruttore DataCache accetta due parametri: il nome della cache e il nome della sezione dataCacheClient . Per informazioni sul nome della cache, vedere la sezione precedente di Named Caches.

Contenuto della sezione

Vedere anche

Concetti

Cache