Scadenza scorrevole nella cache
NCache consente di configurare la scadenza scorrevole per conservare i dati della cache finché vengono utilizzati dall'applicazione e rimuovere tutti i dati che non sono stati utilizzati per un periodo di tempo specifico. Ciò è particolarmente utile per il mantenimento delle sessioni, poiché qualsiasi sessione rimasta inattiva per un periodo specifico è considerata inattiva e può essere rimossa dalla cache.
La scadenza scorrevole garantisce che se si accede ai dati entro l'intervallo di tempo specificato, la durata dell'elemento della cache verrà estesa del valore dell'intervallo. Ad esempio, viene aggiunta una sessione con scadenza di 10 minuti. l'accesso alla sessione avviene al 6° minuto, quindi la durata della sessione nella cache verrà prolungata di altri 10 minuti.
Prerequisiti per utilizzare la scadenza variabile nella cache
- Per conoscere i prerequisiti standard richiesti per lavorare con all NCache Per le funzionalità lato client fare riferimento alla pagina specificata Prerequisiti dell'API lato client.
- Per i dettagli dell'API, fare riferimento a: ICache, CacheItem, CacheItemAttributes, contiene, Contare, Scadenza, inserire, Aggiorna attributi.
Aggiungi/Aggiorna elemento con scadenza scorrevole
Note:
Questa funzionalità è disponibile anche in NCache Professional.
È possibile aggiungere/aggiornare gli elementi della cache per impostare la scadenza, utilizzando il file inserire metodo.
CacheItem
è una classe personalizzata fornita da NCache che può essere utilizzato per aggiungere dati alla cache e consente anche di impostare metadati aggiuntivi associati a un oggetto di questa classe. Questi metadati definiscono le proprietà dell'elemento come scadenza, dipendenze e altro.
L'esempio seguente imposta il valore di Expiration
immobile a Scadenza Scorrevole di 5 minuti per a CacheItem
e lo aggiunge alla cache se la chiave non esiste e aggiorna l'elemento se esiste. Questo CacheItem verrà quindi rimosso dalla cache dopo 5 minuti.
Consiglio
Puoi monitorare/verificare la scadenza tramite:
- Contatore "Conteggio cache" nel file NCache Monitorare or Contatori PerfMon.
- utilizzando
cache.Contains
una volta trascorso l'intervallo di scadenza. - utilizzando
cache.Count
prima e dopo aver specificato la scadenza.
// Precondition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a new CacheItem for this product
var cacheItem = new CacheItem(product);
// Set Expiration TimeSpan
var expiration = new Expiration(ExpirationType.Sliding, TimeSpan.FromMinutes(5));
cacheItem.Expiration = expiration;
// Add/Update item with expiration
cache.Insert(key, cacheItem);
Aggiungi/Aggiorna elemento con scadenze predefinite configurate
È possibile specificare la scadenza scorrevole nell'API utilizzando il file DefaultSliding
ed DefaultSlidingLonger
valori configurati nel NCache Centro Direzionale o config.ncconf. Ciò offre la flessibilità di modificare il valore esternamente, se necessario, senza modificare il codice.
Il codice seguente associa la scadenza predefinita configurata (DefaultSliding in questo caso) a un elemento, lo aggiunge alla cache se la chiave non esiste nella cache e aggiorna l'elemento con la scadenza se la chiave esiste. Se non si accede all'elemento entro l'intervallo di tempo configurato, l'elemento scadrà. In caso contrario, la vita dell'articolo verrà prolungata dello stesso intervallo di tempo.
Consigli
Per abilitare la scadenza predefinita, è obbligatorio abilitarla tramite il NCache Centro di gestione o config.ncconf. Se passi l'API per la scadenza predefinita e non è configurata tramite il file NCache Centro Direzionale o config.ncconf, non funzionerà.
// Pre-condition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a cacheItem instance for product
var cacheItem = new CacheItem(product);
// Set Expiration TimeSpan
var expiration = new Expiration(ExpirationType.DefaultSliding);
cacheItem.Expiration = expiration;
//Add/Update item into the cache with expiration
CacheItemVersion version = cache.Insert(key, cacheItem);
Risorse addizionali
NCache fornisce un'applicazione di esempio per Scadenza scorrevole attiva GitHub.
Vedere anche
.NETTO: Alachisoft.NCache.Memorizzazione.della.cache spazio dei nomi.
Giava: com.alachisoft.ncache.cache.di.runtime spazio dei nomi.
Node.js: Scadenza classe.
Pitone: ncache.cache.di.runtime classe.