Merci beaucoup ASP.NET les applications d'aujourd'hui génèrent un trafic élevé et sont utilisées par des dizaines de milliers d'utilisateurs. Ces applications rencontrent des problèmes de performances car l'accès à la base de données est lent, en particulier lorsque le trafic réseau est élevé. Cette latence devient désormais inabordable car des milliers d'utilisateurs accèdent à ces applications.
Pour résoudre cette contrainte de performances, ASP.NET et ASP.NET Core fournit un mécanisme de mise en cache intégré appelé "Cache ASP.NET" qui stocke les données d'application en mémoire pour un accès plus rapide et réduit les déplacements de la base de données. D'où l'amélioration des performances de votre application.
NCache Détails Performances ASP .NET .NET Core
La mise en cache ASP.NET intégrée a des limites
Cependant, le problème est que le cache ASP.NET intégré est un cache de processus autonome qui réside dans le processus de travail de votre application ASP.NET. Par conséquent, il n'est utile que pour un environnement de serveur unique.
Voici quelques-unes des limitations du cache ASP.NET :
- Plusieurs instances de cache non synchronisées : Étant donné qu'un cache ASP.NET fait partie du processus d'application ASP.NET, il ne permet pas la synchronisation des instances de cache s'exécutant sur plusieurs applications ASP.NET. Cela entraîne des problèmes d'intégrité des données.
- Recyclage du processus de travail NET : Comme le cache ASP.NET est en cours, toutes les données mises en cache sont perdues lorsque les processus de travail ASP.NET sont recyclés. Le cache doit ensuite être rechargé à partir d'une source de données, ce qui entraîne une baisse importante des performances.
- Taille de mémoire de processus de travail limitée : Le cache ASP.NET fait partie du processus de travail de l'application ASP.NET. Par conséquent, la mémoire de ce processus à utiliser pour la mise en cache est limitée.
Solution : mise en cache ASP.NET avec cache distribué
Pour contrer ces limitations de la mise en cache ASP.NET, vous avez besoin d'un cache distribué comme NCache qui vit dans son propre processus sur plusieurs serveurs et fournit également un mécanisme pour synchroniser les caches dans une ferme Web.
Voici comment un cache distribué tel que NCache résout vos problèmes avec la mise en cache ASP.NET :
- Un cache distribué synchronise toutes les instances de cache créées par plusieurs instances d'applications ASP.NET, ce qui résout votre problème d'intégrité des données.
- Puisqu'il s'agit d'un cache out-proc (hors processus), il peut être partagé par plusieurs serveurs et processus de travail.
- La haute évolutivité vous permet d'utiliser autant de mémoire que vous le souhaitez car il n'y a aucune limitation de processus. Cela vous permet également d'avoir autant de serveurs de cache que vous le souhaitez.
- Vous pouvez mettre à l'échelle vos serveurs de mise en cache d'applications ASP.NET en temps réel.
- NCache dispose également d'un système très intelligent de réplication de données sans aucun problème de performances. La fonctionnalité de réplication de données efficace vous permet de rester à l'aise sans aucun problème de perte de données.
NCache Détails Performances ASP .NET ASP.NET Core Performance
Comment utiliser la mise en cache ASP.NET avec le cache distribué ?
NCache fournit différents types de mise en cache que vous pouvez utiliser pour obtenir votre ASP.NET applications opérationnelles avec mise en cache.
Mise en cache des données d'application
Les données d'application qui doivent être extraites fréquemment de votre source de données peuvent être mises en cache dans votre application ASP.NET à l'aide de la mise en cache des données afin de réduire le temps de réponse pour ces données fréquemment consultées. Cela inclut vos données d'objet personnalisées telles que les objets de la classe Product, comme illustré dans l'exemple ci-dessous. L'objet Product est extrait de la base de données pour la première fois, puis ajouté au cache et extrait du cache lors du prochain accès aux données.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using Alachisoft.NCache.Client; ... ICache _cache = CacheManager.GetCache("demoCache"); string key = "Product:1001"; // Search for key in cache var result = _cache.Get<string>(key); // If it doesn't exist, fetch from DB and add to cache if (result == null) { var product = LoadProductFromDB(1001); CacheItem item = new CacheItem(product); _cache.Add(key, item); } |
NCache Détails Mise en cache ASP.NET ASP.NET Core Sessions
Mise en cache de l'état de la session ASP.NET
Vous pouvez utiliser mise en cache des sessions pour stocker les données pertinentes de l'utilisateur pour vos applications ASP.NET. Les données de session appartiennent aux interactions de l'utilisateur sur votre application ASP.NET. Par exemple, une entreprise de commerce électronique ne peut pas se permettre de perdre des sessions en cas de panne du cache ASP.NET. Ainsi, vous pouvez brancher NCache à votre application ASP.NET pour éviter la perte de données.
Utiliser NCache pour la mise en cache ASP.NET, vous n'avez besoin d'aucun effort de programmation. Ajoutez simplement la configuration suivante à Web.config de votre candidature :
1 2 3 4 5 6 7 8 9 |
... <assemblies> <add assembly ="Alachisoft.NCache.SessionStoreProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"/> </assemblies> ... |
Modifiez la configuration de l'état de session pour activer la mise en cache de l'état de session dans ASP.NET. Dans web.config ajouter la section suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<configuration> ... <sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" customProvider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" cacheName="demoCache" sessionAppId="NCacheApp" exceptionsEnabled="true" writeExceptionsToEventLog="false" enableLogs="false" enableSessionLocking="true" sessionLockingRetry="-1" emptySessionWhenLocked="false" /> </providers> </sessionState> ... </configuration> ... |
NCache Détails Mise en cache de session ASP.NET Documents de mise en cache de session ASP.NET
ASP.NET View State Cache haute performance
ASP.NET View State fournit un mécanisme de gestion d'état côté client. Il aide à préserver les valeurs de page et de contrôle entre les allers-retours complets pour les demandes des clients. Vous pouvez stocker ASP.NET view state sur le serveur Web et renvoyer un identifiant unique au navigateur. Cet ID trouvera le bon ASP.NET view state dans le cache.
Atteindre ASP.NET view state mise en cache NCache C'est très facile. Voici une partie de la configuration qui doit être ajoutée à Web.config de votre application ASP.NET :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <ncContentOptimization> <settings viewstateThreshold="12" enableViewstateCaching="true" enableTrace="false" groupedViewStateWithSessions="false" maxViewStatesPerSession="5" > <cacheSettings cacheName="demoCache"> <expiration type="None" duration="100" /> </cacheSettings> </settings> </ncContentOptimization> ... |
NCache Détails ASP.NET View State Cache haute performance NCache Docs
Mise en cache de sortie ASP.NET
Pour les pages Web fréquemment consultées, vous pouvez utiliser mise en cache de sortie pour améliorer les temps de réponse pour ces pages spécifiques. Le système de mise en cache de sortie d'ASP.NET met en cache les différentes versions du contenu des pages en fonction des différents paramètres tels que les paramètres de chaîne de requête et le type de navigateur.
Vous pouvez activer la mise en cache de sortie avec NCache dans votre application ASP.NET sans aucun changement de code et en branchant simplement ce qui suit dans Web.config:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <caching> <outputCache defaultProvider ="NOutputCacheProvider"> <providers> <add name="NOutputCacheProvider" type= "Alachisoft.NCache.OutputCacheProvider.NOutputCacheProvider, Alachisoft.NCache.OutputCacheProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=cff5926ed6a53769" cacheName="demoCache" exceptionsEnabled="true"enableDetailLogs="false" enableLogs="true" writeExceptionsToEventLog="true"/>" </providers> </outputCache> </caching> ... |
NCache Détails NCache Documents de mise en cache de sortie Cache de sortie ASP.NET
Conclusion
Pour résumer, un cache distribué comme NCache est hautement évolutif, fiable et optimisé pour gérer la mise en cache dans ASP.NET. Il possède toutes les fonctionnalités nécessaires pour surmonter toutes les limitations de la mise en cache ASP.NET et est le seul cache distribué capable de gérer lui-même la mise en cache ASP.NET sans que vous vous en inquiétiez. Avec toutes les saveurs de mise en cache disponibles avec NCache, vous pouvez facilement mettre en cache tout type de données dont votre application a besoin, en garantissant une amélioration des performances.
Très bon article Ron. La mise en cache ASP.NET est expliquée en détail. Le cache distribué NCache est fiable et offre de meilleures performances pour ASP.NET. Cela aide à surmonter les limites de la mise en cache ASP.NET. L'article donne une image claire de la façon dont la mise en cache distribuée peut être effectuée.