Scadenza assoluta dei dati nella cache
NCache ti consente di configurare la scadenza assoluta con gli elementi della cache. Ciò farà scadere gli articoli nella data e nell'ora esatte specificate dal cliente. È possibile specificare la scadenza assoluta per gli elementi richiesti nella cache per un periodo di tempo limitato. Ad esempio, un'azienda annuncia una vendita lampo per 24 ore su determinati prodotti. Questi articoli possono quindi essere memorizzati nella cache con una scadenza assoluta di 24 ore in modo che scadano dalla cache non appena la vendita termina.
Inoltre, questo DateTime
il valore viene convertito in Ora UTC per soddisfare il caso in cui il server e il client della cache si trovano in fusi orari diversi. Pertanto gli articoli scadranno all'ora esatta specificata dall'utente.
Prerequisiti
- 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 assoluta
Note:
Questa funzionalità è disponibile anche in NCache Professional.
Aggiungi / aggiorni 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
alla scadenza assoluta di 5 minuti per un CacheItem 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.Absolute, 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 assoluta nell'API utilizzando il file DefaultAbsolute
ed DefaultAbsoluteLonger
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 (DefaultAbsolute 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. Una volta trascorso il tempo configurato, l'elemento scade.
Consigli
Per abilitare la scadenza predefinita, è obbligatorio abilitarla tramite il NCache Centro di gestione or config.ncconf. Se passi l'API per > [!IMPORTANT] e non è configurata tramite il NCache Centro Direzionale o config.ncconf, non funzionerà.
// 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 cacheItem instance for product
var cacheItem = new CacheItem(product);
// Set Expiration type
var expiration = new Expiration(ExpirationType.DefaultAbsolute);
cacheItem.Expiration = expiration;
// Add/Update item into the cache with default expiration
CacheItemVersion version = cache.Insert(key,cacheItem);
Imposta la scadenza assoluta sull'elemento esistente
Note:
Questa funzionalità è disponibile anche in NCache Professional.
NCache fornisce inoltre la flessibilità di impostare la scadenza assoluta su un elemento della cache esistente senza doverlo reinserire nella cache. Ciò avviene attraverso il CacheItemAttribute
classe, che ha il AbsoluteExpiration
proprietà da impostare sull'elemento della cache. Questo imposta la data e l'ora esatte in cui l'elemento deve essere invalidato dalla cache. L'attributo viene quindi impostato rispetto alla chiave esistente dell'elemento, utilizzando il UpdateAttributes
metodo di ICache
.
L'esempio seguente imposta la scadenza assoluta per un elemento che già esiste nella cache senza alcuna scadenza impostata. Ciò non richiede la necessità di aggiungere nuovamente o reinserire l'elemento nella cache.
// Precondition: Cache is already connected
// Precondition: Item already exists in cache
string key = "Product:1001";
// Create a CacheItemAttribute for absolute expiration
// and set its value to 5 seconds
var attr = new CacheItemAttributes();
attr.AbsoluteExpiration = DateTime.Now.AddSeconds(5);
// Set Absolute Expiration of 5 seconds against existing key
cache.UpdateAttributes(key, attr);
Risorse addizionali
NCache fornisce un'applicazione di esempio per Absolute Expiration on 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.