Expiration glissante dans le cache
NCache vous permet de configurer l'expiration glissante pour conserver les données du cache aussi longtemps qu'elles sont utilisées par l'application et supprimer toutes les données qui n'ont pas été utilisées pendant une période de temps spécifique. Ceci est particulièrement utile pour maintenir les sessions, car toute session inactive pendant une période spécifique est considérée comme inactive et peut être supprimée par le cache.
L'expiration glissante garantit que si les données sont accédées dans l'intervalle de temps spécifié, la durée de vie de l'élément de cache sera prolongée de la valeur de l'intervalle. Par exemple, une session est ajoutée après 10 minutes d'expiration. la session est accessible à la 6ème minute, donc la durée de vie de la session dans le cache sera prolongée de 10 minutes supplémentaires.
Conditions préalables pour utiliser l'expiration glissante dans le cache
- 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 glissante
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
Vous pouvez ajouter/mettre à 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
propriété à Expiration glissante de 5 minutes pour une CacheItem
et l'ajoute au cache si la clé n'existe pas - et met à jour l'élément s'il existe. Ce CacheItem sera alors 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.Sliding, 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 une expiration glissante dans l'API à l'aide de l'option DefaultSliding
ainsi que le DefaultSlidingLonger
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 (DefaultSliding 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. Si l’élément n’est pas consulté dans l’intervalle de temps configuré, l’élément expirera. Dans le cas contraire, la durée de vie de l'article sera prolongée du même intervalle de temps.
Important
Pour activer l'expiration par défaut, il est obligatoire de l'activer via le NCache Centre de gestion ou config.ncconf. Si vous transmettez l'API pour l'expiration par défaut et qu'elle n'est pas configurée via le NCache Centre de gestion ou config.ncconf, ça ne marchera pas.
// Pre-condition: 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 TimeSpan
var expiration = new Expiration(ExpirationType.DefaultSliding);
cacheItem.Expiration = expiration;
//Add/Update item into the cache with expiration
CacheItemVersion version = cache.Insert(key, cacheItem);
Ressources additionnelles
NCache fournit un exemple d'application pour l'expiration glissante 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.