Notifiche per il Servizio cache gestito di Azure

Importante

Microsoft consiglia tutti i nuovi sviluppi che usano 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 offre notifiche cache che consentono alle applicazioni di ricevere notifiche asincrone quando si verificano diverse operazioni di cache in una cache denominata. Le notifiche della cache consentono inoltre l'invalidamento automatico degli oggetti memorizzati nella cache locale.

Per consentire la ricezione di notifiche della cache in modo asincrono, aggiungere all'applicazione un callback di notifica della cache. Quando si aggiunge il callback, vengono definiti i tipi di operazioni della cache che attivano una notifica della cache e il metodo dell'applicazione che deve essere chiamato quando si verificano le operazioni specificate. Una cache denominata deve fornire il consenso esplicito e abilitare le notifiche della cache.

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.

Attivazione di notifiche della cache

Queste operazioni della cache sono definite dai membri della classe DataCacheOperations .

Operazioni sulle aree

L'applicazione può ricevere notifiche della cache quando vengono effettuate le seguenti operazioni della cache su un'area:

Operazioni sugli elementi

L'applicazione può ricevere notifiche della cache quando vengono effettuate le seguenti operazioni della cache su un oggetto memorizzato nella cache (indicato come elemento all'interno della cache).

  • AddItem: quando un elemento viene aggiunto alla cache.

  • ReplaceItem: quando un elemento viene sostituito nella cache.

  • RemoveItem: quando un elemento viene rimosso dalla cache.

Nota

Queste operazioni sugli elementi non dipendono dal fatto che si siano verificate o meno all'interno di un'area. È possibile scegliere di limitare l'ambito di notifica del callback a una determinata area. Questa procedura viene illustrata nella sezione Ambito di notifica del presente documento.

Ambito di notifica

A seconda dell'attività e delle esigenze dell'applicazione, è possibile ignorare gli eventi relativi ad ogni oggetto e area nell'intera cache. È possibile restringere l'ambito delle notifiche dal livello di cache al livello di area e di elemento. L'ambito di notifica selezionato quando si aggiunge un callback influisce considerevolmente sul tipo di notifiche della cache ricevute.

A livello di cache, è possibile che l'applicazione riceva notifiche relative a tutte le operazioni della cache da tutti gli oggetti e le aree contenuti nella cache. A livello di area, l'applicazione riceve solo le notifiche relative alle operazioni della cache provenienti da una singola area e dagli oggetti in essa contenuti. A livello di elemento, l'applicazione riceve solo le notifiche relative alle operazioni della cache riguardanti un singolo oggetto.

Per specificare l'ambito di notifica desiderato, scegliere uno dei tre metodi seguenti per aggiungere un callback di notifica della cache:

  • AddCacheLevelCallback: quando si vuole ricevere una notifica alle operazioni della cache basate su aree e elementi che si verificano in tutte le aree e gli elementi.

  • AddRegionLevelCallback: quando si vuole ricevere una notifica alle operazioni di cache basate su aree e elementi che si verificano in un'area specifica.

  • AddItemLevelCallback: quando si vuole ricevere una notifica alle operazioni della cache basate su elementi che si verificano su un elemento specifico.

Ordine delle notifiche

L'ordine delle notifiche ricevute dal client della cache è garantito nel contesto di una singola area. Si supponga, ad esempio, di aver creato un'area denominata RegionA. Poiché tutti i dati inseriti in un'area della cache sono limitati alla stessa area, tutte le operazioni della cache relative all'area RegionA (ambito di notifica a livello di area) arrivano al client della cache nell'ordine reciprocamente corretto. Non è garantito che le operazioni della cache per area e per elemento che si sono verificate su altri host della cache giungano nell'ordine corretto in relazione alle operazioni che si sono verificate nell'area RegionA.

In termini di prestazioni, non è possibile garantire l'ordine delle notifiche che riguardano più aree o più oggetti non archiviati nella stessa area.

Le informazioni sulla versione per gli eventi dell'elemento, sotto forma di oggetto DataCacheItemVersion , vengono passate al metodo richiamato dalla notifica della cache con il version parametro . Questo oggetto DataCacheItemVersion corrisponde alla versione dell'oggetto che ha attivato l'evento dell'elemento. Usando il metodo CompareTo , è possibile confrontare le versioni per determinare prima quali operazioni della cache sono state eseguite.

Nota

I confronti tra versioni sono utili solo quando si esegue il confronto tra versioni dello stesso elemento specificato con la stessa chiave. Non è possibile dedurre l'ordine confrontando le versioni da chiavi diverse; il metodo CompareTo può restituire un risultato, ma il risultato è valido solo per le versioni della stessa chiave.

Intervallo di polling

Quando si usano le notifiche della cache, 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. È possibile impostare un valore inferiore per le applicazioni che eseguono frequentemente operazioni di scrittura, ma per le cache che non cambiano spesso, un intervallo maggiore è più appropriato. Il valore predefinito di 300 secondi è appropriato per la maggior parte delle cache generali.

L'intervallo di polling viene specificato in unità di secondi nelle impostazioni di configurazione dell'applicazione. Per definire un intervallo specifico, è possibile usare l'attributo pollInterval dell'elemento clientNotifications nel file di configurazione dell'applicazione. È anche possibile specificare un intervallo di polling specifico a livello di codice con la NotificationProperties proprietà dell'oggetto DataCacheFactoryConfiguration .

In caso di perdita delle notifiche

Microsoft Azure Cache può contenere solo una determinata quantità di operazioni cache in memoria. È possibile che alcuni client della cache ricevano le notifiche solo dopo che sono state troncate nelle code delle notifiche. I client della cache possono inoltre perdere le notifiche se i dati vengono persi a causa di un errore nella cache. In questi casi, il client della cache può rilevare la perdita di alcune notifiche della cache mediante una notifica di errore. L'applicazione può aggiungere un callback per ricevere notifiche di errore usando il metodo AddFailureNotificationCallback . Per altre informazioni, vedere Procedura: Aggiungere un callback di notifica degli errori

In caso di perdita della cache

È fondamentale distinguere tra la perdita di notifiche e la perdita della cache. Se l'applicazione perde una o più notifiche, può rilevare questa perdita grazie a una notifica di errore. Se viene eliminata l'intera cache, il client della cache genererà eccezioni la volta successiva in cui si tenterà di usare la cache in quanto non sarà possibile connettersi all'endpoint della cache. Eventi della cache come la creazione o l'eliminazione di una cache denominata non vengono segnalati da notifiche. Se una cache denominata viene eliminata dal server dopo la registrazione delle notifiche, non si riceve più alcuna notifica. Non è possibile distinguere tra un problema di cache denominata non esistente e un problema di operazioni non eseguite su una cache denominata.

Nota

Le notifiche della cache segnalano solo modifiche relative ai dati apportate alle aree e agli elementi della cache, ma non segnalano eventi relativi alla cache stessa.

Abilitazione delle notifiche della cache

Le notifiche vengono configurate a livello di cache denominata nel portale di gestione, nella scheda Configura relativa alla cache. L'impostazione predefinita per le notifiche Disabilitato.

Cache Notifications for Windows Azure Cache Servic

Per aggiungere un callback per la ricezione della notifiche della cache, non è necessario definire alcuna impostazione di configurazione dell'applicazione. È possibile usare le impostazioni di configurazione dell'applicazione per specificare un intervallo di polling. L'intervallo di polling predefinito è di 300 secondi. Se si vuole una durata diversa, usare l'elemento nel file di configurazione dell'applicazione basato su XML o specificare l'intervallo clientNotification desiderato a livello di codice con la NotificationsProperties proprietà dell'oggetto DataCacheFactoryConfiguration .

Uso delle notifiche della cache

Dopo aver abilitato le notifiche della cache, sono disponibili tre attività correlate all'uso delle notifiche della cache: aggiunta di callback di notifica cache, aggiunta di callback di notifica degli errori e rimozione dei callback di notifica cache. Per una descrizione delle procedure relative a ogni attività, vedere la parte restante della documentazione.

Vedere anche

Risorse aggiuntive

Funzionalità del Servizio cache gestito di Azure