Supprimer les données du cache
NCache fournit les deux surcharges suivantes avec différents types de retour pour supprimer le ou les objets des données du cache en acceptant la ou les clés de l'élément de cache comme paramètre d'entrée.
bool Remove<T>
void Remove
Pré-requis
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, veuillez vous référer à la page donnée sur Prérequis de l'API côté client.
- Pour plus de détails sur l'API, reportez-vous à : ICache, que vous avez, Effacer, Inclus, Supprimer en masse, SupprimerAsync.
Supprimer l'objet du cache
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
Un objet d'une classe personnalisée peut être supprimé des données du cache à l'aide de l'un des Remove
méthodes.
Important
Si un élément n'existe pas dans les données du cache, null est renvoyé.
Conseil
Un moyen rapide de vérifier si un élément a été supprimé consiste à utiliser l'une des propriétés suivantes de la classe cache :
Count
renvoie le nombre d'éléments présents dans le cache.Contains
vérifie si une clé spécifiée existe dans le cache.
L'exemple suivant supprime l'élément correspondant à la clé spécifiée et convertit l'objet renvoyé en un Témoignages objet pour vérifier si l'objet est de Témoignages taper ou non. Si ce n'est pas le cas, il est rajouté au 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");
}
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Si vous souhaitez économiser votre coût de calcul, vous pouvez utiliser le void Remove
fonction qui ne renvoie rien et s'exécute donc plus rapidement. Voici comment vous pouvez l'utiliser.
Supprimer les éléments en vrac du cache
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
NCache fournit une RemoveBulk
méthode pour supprimer une grande partie des éléments de cache par rapport au tableau spécifié de clés de cache. Il renvoie un dictionnaire des clés et des objets supprimés du cache.
Important
- Si les éléments spécifiés existent dans le cache, un dictionnaire des clés et des objets supprimés est renvoyé.
Conseil
Un moyen rapide de vérifier si un élément a été supprimé consiste à utiliser l'une des propriétés suivantes de la classe cache :
Count
renvoie le nombre d'éléments présents dans le cache.Contains
vérifie si une clé spécifiée existe dans le cache.
L'exemple suivant supprime une grande partie des éléments de cache existants et place l'objet renvoyé dans Témoignages objets.
// 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.");
}
Supprimer des objets du cache avec l'API asynchrone
RemoveAsync
renvoie l'objet de la Classe de tâche qui peuvent être réutilisés en fonction des besoins métier de l'application cliente. NCache fournit trois indicateurs d'état différents pour notifier le succès ou l'échec de l'opération.
Important
Contrairement à Remove
et de RemoveBulk
, RemoveAsync
ne renvoie généralement pas les objets supprimés à l'application car il s'agit d'une opération asynchrone et doit être récupérée.
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.");
}
Ressources additionnelles
NCache fournit l'exemple d'application pour les opérations de base sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Client espace de noms.
Java: com.alachisoft.ncache.client espace de noms.
Node.js : Cache classe.
python: ncache.client classe.