Présentation des types et des stratégies d'expiration des données
NCache prend en charge l'invalidation des données basée sur le temps où vous pouvez spécifier l'heure ou l'intervalle d'expiration de vos données de cache. L'invalidation des données basée sur le temps est applicable dans les situations où vous pouvez déterminer la fréquence de modification des données. Par exemple, les informations régionales peuvent ne pas être fréquemment mises à jour, vous pouvez donc utiliser une expiration basée sur le temps pour invalider ces données.
De plus, l'expiration des données obsolètes du cache entraîne la fourniture de données pertinentes et mises à jour au client. Par exemple, les unités disponibles pour un certain produit peuvent être modifiées dans la base de données, mais pas mises à jour dans le cache. Par conséquent, l’expiration de ces données du cache après une certaine période entraînera le chargement de nouvelles données dans le cache lors de la prochaine demande du client.
Une autre utilisation de l'expiration des données concerne le maintien des sessions. Si une session a été inactive pendant un certain temps, elle peut être supprimée du cache car elle est inactive.
Une valeur d'expiration est ajoutée aux éléments du cache. NCache maintient un index pour les éléments dont l'expiration est basée sur le temps. Un thread dédié vérifie périodiquement les données du cache pour ces éléments expirés après un intervalle de temps configurable appelé Clean Interval. Par défaut, sa valeur est de 15 secondes, ce qui signifie que le temps maximum qu'un élément peut prendre pour être supprimé du cache est de (délai d'expiration + intervalle de nettoyage + temps nécessaire à l'activité de nettoyage). Par conséquent, vous devez sélectionner cet intervalle avec soin en fonction du délai d’expiration de vos données.
Expiration absolue
Vous pouvez ajouter un élément au cache avec Absolute Expiration en spécifiant la date et l'heure exactes auxquelles l'élément doit être invalidé. Une fois ce délai écoulé, l'élément sera supprimé du cache. Ici, NCache maintient l'heure UTC pour l'expiration absolue sur les serveurs de mise en cache, ce qui facilite le cas où les clients et les serveurs de cache se trouvent dans des fuseaux horaires différents. Cela signifie que l'heure d'expiration spécifiée par les clients (dans n'importe quel fuseau horaire) sera convertie en UTC sur le serveur de cache et que l'élément expirera à la date et à l'heure exactes spécifiées par les clients. Vous pouvez spécifier le délai d'expiration allant de quelques secondes à quelques jours et mois.
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
Cependant, notez que l'élément sera supprimé à son expiration lors du prochain intervalle de nettoyage du cache. Par exemple, si vous spécifiez une expiration de 10 secondes avec un élément et que l'intervalle de nettoyage du cache est configuré sur 15 secondes, l'élément sera supprimé dans un délai de 15 à 25 secondes.
Expiration glissante
Lors de cette expiration, vous souhaitez que le cache conserve les données aussi longtemps qu'elles sont utilisées par l'application et supprime toutes les données qui n'ont pas été utilisées pendant une période de temps spécifique. Chaque fois que l'utilisateur accède aux données du cache avec une expiration glissante, la durée de vie du cache sera prolongée de l'intervalle d'expiration spécifique. Par exemple, un élément avec une expiration glissante de 30 secondes sera supprimé du cache si l'utilisateur n'y accède pas pendant au moins 30 secondes. . Cependant, à chaque accès, l'intervalle d'expiration de l'élément sera réinitialisé à 30 secondes, prolongeant ainsi sa durée de vie dans le cache de 30 secondes.
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
Par exemple, les données de session peuvent être stockées dans le cache tant que la session est active. Pour ce type de données, vous pouvez spécifier une expiration glissante, disons 15 minutes. Ainsi, si une activité se produit dans l'intervalle de temps spécifié, l'intervalle d'expiration de la session sera réinitialisé à 15 minutes dans le cache.
Semblable à l’expiration absolue, les éléments du cache avec expiration glissante sont supprimés lors de l’intervalle de nettoyage du cache.
Si aucune date d'expiration n'est fournie avec l'élément de cache, il résidera dans le cache jusqu'à sa suppression explicite. Cela peut surcharger le stockage du cache.
Veuillez également vous référer à Politiques d'expulsion qui est une autre caractéristique de NCache pour contrôler l'utilisation du stockage du cache.
Expirations par défaut
NCache prend également en charge les expirations par défaut qui peuvent vous aider à définir vos stratégies d'invalidation des données avec plus de flexibilité. Les expirations par défaut sont configurées via le NCache Centre de gestion ou config.ncconf, il n'est donc pas nécessaire de modifier le code si vous souhaitez modifier la valeur d'expiration transmise via l'API. De plus, si la même application nécessite plusieurs valeurs d'expiration, des expirations par défaut peuvent être utilisées.
NCache fournit les expirations par défaut suivantes :
- Absolu par défaut
- Glissement par défaut
- Absolue plus longue par défaut
- Glissement par défaut plus long
Toutes les expirations par défaut ont une valeur minimale de 5 secondes.
Supposons que Default Absolute est configuré avec 5 secondes et que Default Sliding Longer expiration est configuré avec 10 secondes. Un objet de la Produit la classe est ajoutée au cache avec Default Absolute et une session est ajoutée avec Default Sliding Longer expiration. Une fois l'objet ajouté, vous souhaitez modifier la valeur d'expiration des deux à 15 secondes. Au lieu de réinsérer les objets avec les nouvelles valeurs d'expiration, vous pouvez simplement modifier la configuration depuis le NCache Centre de gestion ou config.ncconf, sans aucun changement de code.
Il existe plusieurs scénarios dans lesquels la configuration de la stratégie d'expiration via le NCache Le centre de gestion et l'API se chevaucheront et déclencheront les comportements suivants. Notez que l’expiration autre que par défaut fait référence à l’expiration absolue et glissante.
Expiration par défaut | Expiration dans l'appel d'API | Comportement |
---|---|---|
Configuré | Expiration par défaut | Expiration par défaut |
Configuré | Expiration non par défaut | Expiration non par défaut |
Configuré | Aucun | Expiration par défaut |
pas configuré | Expiration par défaut | pas d'expiration |
pas configuré | Expiration non par défaut | Expiration non par défaut |
pas configuré | Aucun | pas d'expiration |
Important
Pour CacheItem
, la valeur par défaut de l'expiration absolue et glissante est NoAbsoluteExpiration et NoSlidingExpiration. Par conséquent, si l'expiration par défaut est configurée mais qu'aucune expiration n'est configurée dans l'API avec CacheItem
, AUCUNE expiration n'aura lieu car sa valeur d'expiration par défaut écrase l'expiration par défaut configurée.
Expiration dans un environnement en cluster
Dans un environnement de cache en cluster où plusieurs serveurs de mise en cache sont impliqués, l'expiration est gérée différemment dans divers NCache topologies.
- Dans le Miroir topologie, le nœud actif effectuera l'expiration et la synchronisera sur le nœud passif.
- Dans le Répliqué cache, l'expiration est effectuée par le nœud coordinateur et l'opération sera ensuite synchronisée avec les autres nœuds du cluster.
- Dans le Partitionné topologie, comme les données sont distribuées sur des nœuds séparés, chaque nœud est responsable de sa propre expiration d'élément.
- Pour Réplique de partition topologie, l'expiration sera effectuée sur les nœuds actifs et se propagera à leurs répliques respectives.
- Cache client utilisera la même expiration activée sur le cache en cluster. Cependant, l'expiration glissante est ajoutée en tant qu'expiration absolue une fois qu'elle est synchronisée avec le cache, car elle provoque une incohérence si la valeur glisse dans le cache en cluster mais pas dans le cache client.
Voir aussi
Expiration absolue des données dans le cache
Expiration glissante
Expulsion