Expiration absolue des données dans le cache
NCache vous permet de configurer Absolute Expiration avec vos éléments de cache. Les articles expireront à la date et à l'heure exactes spécifiées par le client. L'expiration absolue peut être spécifiée pour les éléments requis pendant une durée limitée dans le cache. Par exemple, une entreprise annonce une vente flash pendant 24 heures sur certains produits. Ces articles peuvent ensuite être mis en cache avec une expiration absolue de 24 heures afin qu'ils expirent du cache dès la fin de la vente.
De plus, cela DateTime
la valeur est convertie en Heure UTC pour répondre au cas où le serveur de cache et le client se trouvent dans des fuseaux horaires différents. Ainsi, les éléments expireront à l’heure exacte spécifiée par l’utilisateur.
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, CacheItem, CacheItemAttributes, Inclus, que vous avez, Expiration, insérer, Mettre à jour les attributs.
Ajouter/Mettre à jour un article avec expiration absolue
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
Vous ajoutez/mettez à jour les éléments du cache pour définir l'expiration, en utilisant le insérer méthode.
CacheItem
est une classe personnalisée fournie par NCache qui peut être utilisé pour ajouter des données au cache et vous permet également de définir des métadonnées supplémentaires associées à un objet de cette classe. Ces métadonnées définissent les propriétés de l'élément telles que l'expiration, les dépendances, etc.
L'exemple suivant définit la valeur de Expiration
La propriété à expiration absolue de 5 minutes pour un CacheItem l'ajoute au cache si la clé n'existe pas - et met à jour l'élément s'il existe. Ce CacheItem
sera ensuite supprimé du cache après 5 minutes.
Conseil
Vous pouvez surveiller/vérifier l'expiration via :
- Compteur "Cache Count" dans le NCache Surveiller or Compteurs de performances.
- En utilisant
cache.Contains
une fois le délai d'expiration écoulé. - En utilisant
cache.Count
avant et après avoir spécifié l'expiration.
// 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);
Ajouter/mettre à jour un élément avec des expirations par défaut configurées
Vous pouvez spécifier l'expiration absolue dans l'API à l'aide de l'option DefaultAbsolute
ainsi que le DefaultAbsoluteLonger
valeurs configurées dans le NCache Centre de gestion ou config.ncconf. Cela offre la flexibilité de modifier la valeur en externe si nécessaire, sans modifier le code.
Le code suivant associe l'expiration par défaut configurée (DefaultAbsolute dans ce cas) à un élément, l'ajoute au cache si la clé n'existe pas dans le cache et met à jour l'élément avec l'expiration si la clé existe. Une fois le temps configuré écoulé, l'élément est expiré.
Important
Pour activer l'expiration par défaut, il est obligatoire de l'activer via le NCache Centre de gestion or config.ncconf. Si vous transmettez l’API pour > [!IMPORTANT] et qu’elle n’est pas configurée via le NCache Centre de gestion ou config.ncconf, ça ne marchera pas.
// 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);
Définir l'expiration absolue sur un élément existant
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
NCache offre également la possibilité de définir l'expiration absolue sur un élément de cache existant sans avoir à le réinsérer dans le cache. Cela se fait à travers le CacheItemAttribute
classe, qui a le AbsoluteExpiration
propriété à définir sur l'élément de cache. Cela définit la date et l'heure exactes auxquelles l'élément doit être invalidé du cache. L'attribut est ensuite défini par rapport à la clé existante de l'élément, à l'aide de la UpdateAttributes
méthode de ICache
.
L'exemple suivant définit l'expiration absolue pour un élément qui existe déjà dans le cache sans définir d'expiration. Cela ne nécessite pas de ré-ajout ou de réinsertion de l'élément dans le 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);
Ressources additionnelles
NCache fournit un exemple d'application pour l'expiration absolue sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Runtime.Caching espace de noms.
Java: com.alachisoft.ncache.runtime.caching espace de noms.
Node.js : Expiration classe.
python: ncache.runtime.caching classe.