Share via


Scadenza e rimozione per il Servizio cache gestito 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?

Microsoft Azure cache non conserva in modo permanente gli oggetti memorizzati nella cache. Oltre a essere rimosso in modo esplicito dalla cache tramite il metodo Remove , gli oggetti memorizzati nella cache possono anche scadere o essere rimossi dalla cache.

Scadenza

La scadenza della cache consente a quest'ultima di rimuovere automaticamente oggetti memorizzati. Quando si usa il metodo Put o Add, è possibile impostare un valore di timeout facoltativo per lo specifico oggetto della cache. Questo valore determinerà il tempo di permanenza nella cache. Se il valore di timeout dell'oggetto non viene fornito al momento della memorizzazione nella cache, l'oggetto usa la scadenza predefinita, L'ora predefinita per Servizio cache gestita è di dieci minuti.

I criteri di scadenza funzionano insieme all'impostazione Durata (min) per stabilire quando scadono gli elementi memorizzati nella cache. Questi comportamenti vengono configurati a livello di cache denominata nel portale di gestione, nella scheda Configura relativa alla cache.

Expiry Policy for Windows Azure Cache Service

Vi sono tre tipi di criteri di scadenza: Assoluta, Estendibile e Mai.

Criterio di scadenza Descrizione

Mai

La scadenza è disabilitata. Gli elementi rimangono nella cache fino a quando non vengono rimossi. Quando si specifica Nessuna, Durata (min) deve essere impostato su 0.

Assoluto

L'intervallo specificato da Durata (min) inizia quando si aggiunge un elemento alla cache. Trascorso l'intervallo specificato da Durata (min), l'elemento scade.

Estendibile

L'intervallo specificato da Durata (min) viene reimpostato ogni volta che si accede a un elemento presente nella cache. L'elemento non scade fino a quando non è trascorso l'intervallo specificato da Durata (min) dopo l'ultimo accesso all'elemento. In questo modo, gli elementi usati di frequente rimangono nella cache più a lungo.

Il criterio di scadenza predefinito è Assoluta e l'impostazione predefinita per Durata (min) è dieci minuti. I criteri di scadenza sono fissi per ogni elemento in una cache denominata, ma l'ora (min) può essere personalizzata per ogni elemento usando gli overload Add e Put che accettano un parametro di timeout .

Nota

È importante notare il comportamento di una scadenza Estendibile quando viene usata in combinazione con la cache locale. Se un elemento viene letto dalla cache locale, questa operazione non implica l'accesso a tale oggetto nella cache ed è quindi possibile che l'elemento risulti scaduto nel server anche se viene letto in locale.

Se sono stati bloccati per motivi di concorrenza, gli oggetti memorizzati nella cache non vengono rimossi anche se è stata superata la scadenza. Nel caso in cui siano scaduti, verranno rimossi dalla cache subito dopo essere stati sbloccati.

Per impedire la rimozione istantanea quando si sbloccano oggetti che nel frattempo sono scaduti, il metodo Unlock supporta anche l'estensione della scadenza dell'oggetto memorizzato nella cache.

È possibile visualizzare l'integrità e le prestazioni della cache, incluse le metriche per la rimozione e la scadenza, nella scheda Monitoraggio relativa alla cache disponibile nel portale di gestione. Per altre informazioni, vedere Monitoraggio del servizio cache tramite la scheda Monitoraggio.

Invalidamento della cache locale

Esistono due tipi complementari di invalidazione per la cache locale: invalidazione basata sul timeout e invalidazione basata su notifica.

Suggerimento

Una volta archiviati gli oggetti nella cache locale, l'applicazione continua a usarli fino a quando non vengono invalidati, indipendentemente dal fatto che vengano aggiornati da un altro client. Per questo motivo, è opportuno abilitare la cache locale per i dati che non vengono modificati frequentemente.

Invalidamento basato sul timeout

Una volta che gli oggetti vengono scaricati nella cache locale, vi restano fino a quando non raggiungono il valore di timeout specifico indicato nelle impostazioni di configurazione del client della cache. Quando questo valore viene raggiunto, gli oggetti vengono invalidati. L'oggetto potrà essere aggiornato dalla cache quando verrà richiesto la volta successiva.

Invalidamento basato sulla notifica

Se nel client della cache è abilitata la cache locale, è inoltre possibile usare le notifiche della cache per invalidare automaticamente gli oggetti memorizzati localmente nella cache. Se si riduce la durata di questi oggetti in base alle esigenze, è possibile evitare il rischio che l'applicazione usi dati obsoleti.

Nota

Le notifiche sono disponibili nelle offerte di Cache Standard e Premium, ma non nell'offerta di Cache Basic. Per altre informazioni, vedere Offerte di cache per Azure Servizio cache gestita.

Quando si usano le notifiche, l'applicazione effettua un controllo con la cache a intervalli regolari per verificare se sono disponibili nuove notifiche. Tale intervallo, definito intervallo di polling, corrisponde a 300 secondi per impostazione predefinita. L'intervallo di polling viene specificato in unità di secondi nelle impostazioni di configurazione dell'applicazione. Si noti che anche con l'invalidamento basato sulla notifica, i timeout continuano a essere applicati agli elementi della cache locale. Ciò rende l'invalidamento basato sulla notifica complementare a quello basato sul timeout.

Per altre informazioni ed esempi, vedere Cache locale per Azure Servizio cache gestita.

Rimozione

Per gestire la disponibilità della capacità di memoria per una cache, è supportata la rimozione degli elementi utilizzati meno di recente (LRU). Quando il consumo di memoria si avvicina al valore consentito dall'offerta di Cache, gli oggetti vengono rimossi dalla memoria indipendentemente dal fatto che siano scaduti, finché non diminuisce la richiesta di memoria.

Avviso

Se si disabilita la rimozione, può verificarsi un problema di limitazione delle richieste. In questo caso, la memoria supera la soglia, ma non è possibile risolvere il problema di memoria insufficiente. Se i client tentano di aggiungere elementi alla cache in questo scenario, viene generata un'eccezione finché il problema non viene risolto.

È possibile visualizzare l'integrità e le prestazioni della cache, incluse le metriche per la rimozione e la scadenza, nella scheda Monitoraggio relativa alla cache disponibile nel portale di gestione. Per altre informazioni, vedere Monitoraggio del servizio cache tramite la scheda Monitoraggio.

Esistono due impostazioni per la rimozione: Abilitata e Disabilitata. La rimozione è configurata a livello di cache denominata nel portale di gestione, nella scheda Configura relativa alla cache. L'impostazione predefinita è Abilitato.

Eviction Policy for Windows Azure Cache Service

Specifica delle impostazioni di scadenza e rimozione tramite codice

I seguenti metodi consentono di ignorare le impostazioni predefinite presenti nella cache:

  • I metodi Add e Put forniscono overload che consentono di specificare un valore di timeout di scadenza solo per l'oggetto aggiunto alla cache.

  • I metodi PutAndUnlock e Unlock forniscono overload che consentono di estendere la scadenza di un oggetto dopo averlo sbloccato.

  • Il metodo ResetObjectTimeout consente di estendere in modo esplicito la durata di un oggetto, ignorando le impostazioni di scadenza della cache.

Nota

Indipendentemente dalle impostazioni di scadenza o rimozione, in caso di errore o arresto imprevisto del servizio Cache i dati presenti nella cache non vengono conservati. Se nella cache non vengono trovati dati, il codice dell'applicazione dovrà ricaricare la cache da un'origine dati. Tale operazione viene spesso definita modello di programmazione cache-aside.

Vedere anche

Risorse aggiuntive

Funzionalità del Servizio cache gestito di Azure