Memorizzazione nella cache dei dati dell'applicazione

In ASP.NET è disponibile un meccanismo potente e di facile utilizzo per l'inserimento nella cache, che consente di memorizzare gli oggetti la cui creazione richiede una notevole quantità di risorse del server. La memorizzazione di questi tipi di risorse nella cache può migliorare in modo significativo le prestazioni dell'applicazione.

Questo meccanismo viene implementato dalla classe Cache, con istanze cache private per ogni applicazione. La durata della cache è collegata a quella dell'applicazione e pertanto quando l'applicazione viene riavviata, l'oggetto Cache viene ricreato.

La classe Cache è stata progettata in modo da essere di facile utilizzo. È possibile inserire elementi nella Cache e successivamente recuperarli utilizzando semplici coppie chiave/valore. Per esempi di esecuzione di questa operazione, vedere Procedura: aggiungere elementi alla cache e Procedura: recuperare i valori degli elementi memorizzati nella cache.

La classe Cache offre funzionalità potenti che consentono di personalizzare la modalità di memorizzazione degli elementi nella cache e la durata di tale memorizzazione. Quando ad esempio la memoria del sistema diventa insufficiente, la cache rimuove automaticamente gli elementi con bassa priorità o di uso più raro per liberare memoria. Questa tecnica viene definita scavenging e rappresenta uno dei modi con cui la cache garantisce che i dati obsoleti non consumino importanti risorse del server.

È possibile fare in modo che, quando viene eseguito lo scavenging, l'oggetto Cache assegni a determinati elementi la priorità rispetto ad altri. Per indicare la priorità di un elemento, è possibile specificare uno dei valori di enumerazione CacheItemPriority quando si aggiunge un elemento utilizzando il metodo Add o Insert.

È anche possibile stabilire un criterio di scadenza per un elemento quando lo si aggiunge alla cache utilizzando il metodo Add o Insert. La durata di un elemento può essere definita specificando un'ora esatta per la relativa scadenza (una scadenza assoluta) utilizzando un valore DateTime. In alternativa, è possibile specificare una scadenza variabile utilizzando un valore TimeSpan, che consente di indicare il tempo trascorso prima della scadenza dell'elemento in base all'ora dell'ultimo accesso. Un elemento scaduto viene rimosso dalla cache. I tentativi di recuperarne il valore restituiranno null (Nothing in Visual Basic), a meno che l'elemento non venga nuovamente aggiunto alla cache.

Per gli elementi volatili che sono memorizzati nella cache, ad esempio quelli con aggiornamenti regolari o quelli che sono validi solo per un periodo di tempo prestabilito, è generalmente necessario impostare un criterio di scadenza che mantenga tali elementi nella cache fino a quando i dati in essi contenuti rimangono correnti. Se, ad esempio, si scrive un'applicazione che tiene traccia dei punteggi delle competizioni sportive ottenendo i dati da un altro sito Web, è possibile memorizzare nella cache i punteggi di un gioco fino a quando questi non vengono modificati nel sito Web di origine. In questo caso, si può impostare un criterio di scadenza basato sulla frequenza di aggiornamento dei punteggi nell'altro sito Web. È possibile scrivere il codice che determina se il punteggio nella cache è aggiornato. Se il punteggio non è aggiornato, il codice può leggere il punteggio dal sito Web e memorizzare il nuovo valore nella cache.

ASP.NET consente infine di definire la validità di un elemento memorizzato nella cache in base a una directory o a un file esterno (dipendenza di file) o a un altro elemento inserito nella cache (dipendenza di chiavi). Se viene modificato l'elemento con le dipendenze associate, l'elemento memorizzato nella cache viene invalidato e rimosso dalla cache. È possibile utilizzare questa tecnica per rimuovere elementi dalla cache quando la relativa origine dati cambia. Se, ad esempio, si scrive un'applicazione che elabora dati finanziari da un file XML, sarà possibile inserire i dati del file nella cache e impostare una dipendenza su tale file XML. Quando il file viene aggiornato, l'elemento viene rimosso dalla cache, l'applicazione rilegge il file XML e inserisce i dati aggiornati nella cache.

Nota

Nell'oggetto Cache non sono disponibili informazioni sul contenuto degli elementi memorizzati. ma solo riferimenti a tali oggetti. Sono anche disponibili metodi con cui è possibile tracciare le dipendenze degli oggetti e impostare i criteri di scadenza.

Per ulteriori informazioni sulla modalità di utilizzo di queste funzionalità, vedere Procedura: aggiungere elementi alla cache.

Vedere anche

Attività

Procedura: aggiungere elementi alla cache
Procedura: recuperare i valori degli elementi memorizzati nella cache
Procedura: eliminare gli elementi dalla cache in ASP.NET
Procedura: notificare all'applicazione la rimozione di un elemento dalla cache

Concetti

Cenni preliminari sull'inserimento nella cache in ASP.NET
Novità della memorizzazione nella cache in ASP.NET