Cache-Daten entfernen
NCache stellt die folgenden zwei Überladungen mit unterschiedlichen Rückgabetypen bereit, um das Objekt bzw. die Objekte aus den Cache-Daten zu entfernen, indem der bzw. die Cache-Elementschlüssel als Eingabeparameter akzeptiert werden.
bool Remove<T>
void Remove
Voraussetzungen:
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: ICache, Zu Zählen, Entfernen, Enthält, Bulk entfernen, RemoveAsync.
Objekt aus dem Cache entfernen
Note
Diese Funktion ist auch in verfügbar NCache Professional.
Ein Objekt einer benutzerdefinierten Klasse kann mithilfe einer der folgenden Methoden aus den Cache-Daten entfernt werden Remove
Methoden.
Wichtig
Wenn ein Element in den Cache-Daten nicht vorhanden ist, wird null zurückgegeben.
Tipp
Eine schnelle Möglichkeit, zu überprüfen, ob ein Element entfernt wurde, ist die Verwendung einer der folgenden Eigenschaften der Cache-Klasse:
Count
gibt die Anzahl der im Cache vorhandenen Elemente zurück.Contains
überprüft, ob ein bestimmter Schlüssel im Cache vorhanden ist.
Das folgende Beispiel entfernt das dem angegebenen Schlüssel entsprechende Element und wandelt das zurückgegebene Objekt in a um Kundenfälle Objekt, um zu prüfen, ob das Objekt von ist Kundenfälle Typ oder nicht. Wenn nicht, wird es wieder dem Cache hinzugefügt.
// 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
Um sicherzustellen, dass der Vorgang ausfallsicher ist, wird empfohlen, alle potenziellen Ausnahmen in Ihrer Anwendung zu behandeln, wie in erläutert Umgang mit Fehlern.
Wenn Sie Ihre Rechenkosten sparen möchten, können Sie die verwenden void Remove
Funktion, die nichts zurückgibt und daher schneller ausgeführt wird. So können Sie es verwenden.
Bulk-Elemente aus dem Cache entfernen
Note
Diese Funktion ist auch in verfügbar NCache Professional.
NCache stellt ein RemoveBulk
-Methode, um einen Großteil der Cache-Elemente aus dem angegebenen Array von Cache-Schlüsseln zu entfernen. Es gibt ein Wörterbuch der aus dem Cache entfernten Schlüssel und Objekte zurück.
Wichtig
- Wenn die angegebenen Elemente im Cache vorhanden sind, wird ein Wörterbuch der entfernten Schlüssel und Objekte zurückgegeben.
Tipp
Eine schnelle Möglichkeit, zu überprüfen, ob ein Element entfernt wurde, ist die Verwendung einer der folgenden Eigenschaften der Cache-Klasse:
Count
gibt die Anzahl der im Cache vorhandenen Elemente zurück.Contains
überprüft, ob ein bestimmter Schlüssel im Cache vorhanden ist.
Das folgende Beispiel entfernt einen Großteil der vorhandenen Cache-Elemente und wandelt das zurückgegebene Objekt in um Kundenfälle Objekte.
// 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.");
}
Entfernen Sie Objekte aus dem Cache mit asynchroner API
RemoveAsync
gibt Objekt von zurück Aufgabenklasse die entsprechend den Geschäftsanforderungen der Client-Anwendung weiter verwendet werden können. NCache bietet drei verschiedene Status-Flags, um den Erfolg oder Misserfolg der Operation zu melden.
Wichtig
Im Gegensatz zu Remove
und RemoveBulk
, RemoveAsync
gibt die entfernten Objekte im Allgemeinen nicht an die Anwendung zurück, da es sich um einen asynchronen Vorgang handelt, der abgerufen werden muss.
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.");
}
Weitere Informationen
NCache stellt die Beispielanwendung für Basic Operations auf GitHub.
Siehe auch
.NETZ: Alachisoft.NCache.Klient Namespace.
Java: com.alachisoft.ncache.Klient Namespace.
Node.js: Cache-Speicher Klasse.
Python: ncache.Klient Klasse.