Rimuovi i dati della cache
NCache fornisce i due sovraccarichi seguenti con tipi restituiti diversi per rimuovere gli oggetti dai dati della cache accettando le chiavi dell'elemento della cache come parametro di input.
bool Remove<T>
void Remove
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, Contare, Rimuovere, contiene, Rimuovi Bulk, RimuoviAsync.
Rimuovi oggetto dalla cache
Note:
Questa funzionalità è disponibile anche in NCache Professional.
Un oggetto di una classe personalizzata può essere rimosso dai dati della cache utilizzando uno qualsiasi dei file Remove
metodi.
Consigli
Se un elemento non esiste nei dati della cache, viene restituito null.
Consiglio
Un modo rapido per verificare se un elemento è stato rimosso è utilizzare una delle seguenti proprietà della classe cache:
Count
restituisce il numero di elementi presenti nella cache.Contains
verifica se nella cache esiste una chiave specificata.
L'esempio seguente rimuove l'elemento corrispondente alla chiave specificata ed esegue il cast dell'oggetto restituito in a oggetto per verificare se l'oggetto è di digitare o meno. In caso contrario, viene aggiunto di nuovo alla cache.
// Precondition: Cache is already connected
// Unique cache key of product to remove
string key = $"Product:{product.ProductID}";
string customerKey = $"Customer:ALFKI";
// Create an object to store removed item
Customer customerRemoved = null;
// Remove specified item from cache
bool isItemRemoved = cache.Remove(customerKey, out customerRemoved);
if (isItemRemoved)
{
Console.WriteLine($"Customer with ID {customerRemoved.CustomerID} has been removed");
}
Note:
Per garantire che l'operazione sia a prova di errore, si consiglia di gestire eventuali potenziali eccezioni all'interno dell'applicazione, come spiegato in Gestione dei guasti.
Se vuoi risparmiare sui costi di calcolo, puoi utilizzare il void Remove
funzione che non restituisce nulla e quindi funziona più velocemente. Ecco come puoi usarlo.
Rimuovi elementi in blocco dalla cache
Note:
Questa funzionalità è disponibile anche in NCache Professional.
NCache fornisce un RemoveBulk
metodo per rimuovere una massa di elementi della cache rispetto all'array di chiavi della cache specificato. Restituisce un dizionario delle chiavi e degli oggetti rimossi dalla cache.
Consigli
- Se gli elementi specificati esistono nella cache, viene restituito un dizionario delle chiavi e degli oggetti rimossi.
Consiglio
Un modo rapido per verificare se un elemento è stato rimosso è utilizzare una delle seguenti proprietà della classe cache:
Count
restituisce il numero di elementi presenti nella cache.Contains
verifica se nella cache esiste una chiave specificata.
L'esempio seguente rimuove la maggior parte degli elementi della cache esistenti ed esegue il cast dell'oggetto restituito oggetti.
// Create an array of all keys to remove
String[] keysToRemove = new String[]
{
"Customer:ALFKI", "Customer:ANATR", "Customer:ANTON", "Customer:AROUT", "Customer:BERGS"
};
// Create dictionary to store removed items
IDictionary<string, Customer> removedItems;
// Remove items from DB
if (DeleteFromDB(keysToRemove))
{
// Remove bulk items from cache
cache.RemoveBulk(keysToRemove, out removedItems);
if (removedItems.Count != keysToRemove.Length)
Console.WriteLine($"Failed to remove {keysToRemove.Length - removedItems.Count} items from cache.");
}
Rimuovi oggetti dalla cache con l'API asincrona
RemoveAsync
restituisce l'oggetto del Classe di attività che possono essere ulteriormente utilizzati in base alle esigenze aziendali dell'applicazione client. NCache fornisce tre diversi flag di stato per notificare l'esito positivo o negativo dell'operazione.
Consigli
a differenza di Remove
ed RemoveBulk
, RemoveAsync
generalmente non restituisce gli oggetti rimossi all'applicazione poiché si tratta di un'operazione asincrona e deve essere recuperata.
string customerKey = $"Customer:ALFKI";
// Remove specified item from cache
Task<Customer> task = cache.RemoveAsync<Customer>(customerKey);
//This task object can be used as per your business needs
if (task.IsCompleted)
{
// Get Customer object from task result
Customer customer = task.Result;
Console.WriteLine($"Item {customer.CustomerID} has been removed.");
}
Risorse addizionali
NCache fornisce l'applicazione di esempio per Operazioni di base su GitHub.
Vedere anche
.NETTO: Alachisoft.NCache.Cliente spazio dei nomi.
Giava: com.alachisoft.ncache.cliente spazio dei nomi.
Node.js: Cache classe.
Pitone: ncache.cliente classe.