Questa documentazione è stata archiviata e non viene gestita.

Cache locale in Cache nel ruolo di Azure

Aggiornamento: agosto 2015

ImportantImportante
Microsoft consiglia di usare Cache Redis di Azure per tutte le nuove attività di sviluppo. Per la documentazione corrente e per istruzioni sulla scelta di un'offerta di Cache di Azure, vedere Qual è l'offerta di Cache di Azure più adatta alle mie esigenze?

La cache locale è una funzionalità di Cache di Microsoft Azure tramite cui vengono migliorate le prestazioni riducendo le richieste della rete alle cache remote. Tramite Cache di Microsoft Azure gli oggetti vengono archiviati in formato serializzato in una cache in memoria distribuita su più server. Quando tramite un'applicazione viene richiesto un oggetto dalla cache, viene identificato il server in cui è archiviato l'oggetto. Tramite questo server l'oggetto serializzato viene quindi inviato, attraverso la rete, all'applicazione da cui è stata effettuata la richiesta. L'applicazione quindi deserializza l'oggetto per usarlo. Per accelerare il processo di recupero di un oggetto, abilitare la cache locale.

Quando la cache locale è abilitata, il client della cache archivia un riferimento all'oggetto a livello locale. Questo riferimento locale mantiene l'oggetto attivo nella memoria dell'applicazione client. Quando l'applicazione richiede l'oggetto, il client della cache controlla se l'oggetto risiede nella cache locale. In caso affermativo, il riferimento all'oggetto viene restituito immediatamente senza contattare il server. Se invece non risiede nella cache locale, l'oggetto viene recuperato dal server. Il client della cache deserializza quindi l'oggetto e archivia nella cache locale il riferimento a questo oggetto appena recuperato. L'applicazione client usa questo stesso oggetto.

La durata di un oggetto nella cache locale dipende dal numero massimo di oggetti nella cache locale e dal criterio di invalidamento. Esistono due tipi di invalidamenti per la cache locale: invalidamento basato sul timeout e invalidamento basato sulla notifica. Per altre informazioni, vedere Scadenza e rimozione in Cache nel ruolo di Azure.

La cache locale può essere abilitata e configurata usando il file web.config o il file di configurazione dell'applicazione. È possibile aggiungere un elemento localCache alla sezione dataCacheClient. La seguente tabella elenca gli attributi dell'elemento localCache.

 

Attributo Descrizione

isEnabled

Impostare l'attributo su true o false per abilitare o disabilitare la cache locale.

sync

Determina la modalità di invalidamento della cache locale. I valori possibili sono TimeoutBased e NotificationBased.

objectCount

Numero massimo di oggetti che si possono archiviare nella cache locale. Il valore predefinito è 10000.

ttlValue

Numero di secondi di permanenza degli oggetti nella cache locale. Il valore predefinito è 300 secondi.

Il valore sync per TimeoutBased mantiene gli oggetti memorizzati nella cache locale finché non viene raggiunto il limite specificato con ttlValue. Il valore NotificationBased usa le notifiche insieme al meccanismo basato sul timeout. Per usare le notifiche per l'invalidamento, abilitare le notifiche per la cache. L'intervallo di polling per le notifiche verifica se gli elementi nella cache locale sono cambiati. Un intervallo di polling per le notifiche efficace deve essere più breve dell'impostazione di ttlValue. Si può usare un ulteriore elemento, clientNotification, per configurare l'intervallo di polling per le notifiche impostando l'attributo pollInterval sul numero di secondi. Il valore predefinito è 300 secondi.

noteNota
Le notifiche sono una funzionalità di Cache nel ruolo supportata solo nelle cache ospitate nei ruoli di Azure.

Il seguente esempio mostra una sezione dataCacheClient che usa la cache locale con scadenza locale basata sul timeout impostata su cinque minuti (300 secondi).

    <dataCacheClient name="default">
      <!-- Other configuration settings for cache -->
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </dataCacheClient>

Il seguente esempio mostra la sezione precedente dataCacheClient modificata in modo da usare le notifiche per fornire ulteriore sincronizzazione eseguendo il polling ogni minuto (60 secondi). Le notifiche sono supportate solo con Cache nel ruolo basato su ruoli.

    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="WebRole1" />
      <localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
      <clientNotification pollInterval="60" />
    </dataCacheClient>

Per scaricare un esempio che usa la cache locale, vedere la pagina relativa all'esempio di prestazioni e API di Caching.

Vedere anche

Mostra: