Résoudre les limitations du cache ASP.NET dans les fermes Web avec NCache

Microsoft fournit l'objet ASP.NET Cache dans le champ d'application d'ASP.NET, qui vous permet de mettre en cache les données d'application et de réduire ces déplacements de base de données coûteux et améliorez vos performances ASP.NET. Voici comment ASP.NET Cache est généralement utilisé.

using System.Web.Caching;
...
string key = "Employee:EmployeeId:1000";
Employee employee = (Employee)Cache[key];

if (employee == null){    
  // Load Employee from DB & put it in the Cache
  LoadEmployeeFromDb(employee);
  Cache.Insert(key, employee, null, 
               Cache.NoAbsoluteExpiration, 
               Cache.NoSlidingExpiration, 
               CacheItemPriority.Default, null );
}

Limitations du cache ASP.NET dans les batteries de serveurs Web

Le cache ASP.NET est un cache in-process (InProc) autonome et présente donc de nombreuses limitations si votre application est déployée dans une batterie de serveurs Web à charge équilibrée. Ces limites sont :

  • Plusieurs copies de cache non synchronisées : Plusieurs copies de votre cache dans des jardins Web ou des batteries de serveurs Web ne sont pas synchronisées entre elles, car ASP.NET Cache est autonome. Et cela pose un problème majeur d'intégrité des données pour votre application.
  • Cache perdu lors du recyclage du processus de travail : Toutes les données du cache ASP.NET sont perdues lorsque le processus de travail est recyclé. Et cela entraîne un problème de performances car vous devez recharger à nouveau l'intégralité du cache à partir de la base de données.
  • Le problème de taille de cache est limité : Le cache ASP.NET doit vivre dans la limite de mémoire du processus de travail ASP.NET, ce qui limite considérablement la taille de votre cache.
  • La synchronisation du cache via la base de données pose des problèmes : SQL CacheDependency dans ASP.NET Cache vous permet de synchroniser le cache avec la base de données. Et, certaines personnes l'utilisent pour synchroniser plusieurs copies de cache sur différents serveurs Web les unes avec les autres en passant par la base de données. Mais cela pose des problèmes majeurs de performances et d'évolutivité car la base de données est à nouveau au centre de toutes les activités et SQL CacheDependency lui-même n'est pas très évolutif.

Cache distribué (NCache): Solution pour fermes Web

NCache est un cache distribué et résout toutes les limitations du cache ASP.NET mentionnées ci-dessus. Voici comment NCache résout ces limitations :

  • Cache synchronisé dans la ferme Web : NCache est une cache distribué et synchronise le cache sur plusieurs serveurs dans une ferme Web. Cela signifie qu'il n'y a pas de problèmes d'intégrité des données avec NCache.
  • Cache OutProc dans le jardin Web : NCache est un cache hors processus afin que plusieurs processus de travail puissent partager un cache commun.
  • Taille du cache très évolutive : NCache met non seulement n'importe quel type de processus de travail ASP.NET de limitation de taille de mémoire, mais vous permet également de ajouter plus de serveurs de cache pour augmenter la capacité de stockage. Ainsi, vous pouvez facilement disposer de 100 Go ou plus de taille de cache.
  • Mises à l'échelle du cache pour les transactions élevées dans les fermes Web : NCache est un cache distribué et fournit topologies de mise en cache évolutives. Ceci permet NCache pour mettre à l'échelle le cluster de cache sans aucun problème.
  • Le cache est très fiable avec la réplication des données : NCache fournit réplication intelligente des données sans sacrifier aucune performance. Cette réplication de données garantit que même si un serveur de cache tombe en panne, aucune donnée n'est perdue. Cela permet à votre application ASP.NET de mettre en cache des données sans se soucier de la perte de données.

NCache a ASP.NET Cache API plus Plus

NCache fournit toutes les fonctionnalités d'ASP.NET Cache avec une API identique plus. Cela vous permet de migrer du cache ASP.NET vers NCache de façon transparente. Vous modifiez uniquement l'espace de noms de System.Web.CachingSystem.Web.Caching à Alachisoft.NCache.Web.Caching et assurez-vous que tous vos objets mis en cache sont sérialisables.

En outre, NCache fournit de nombreuses fonctionnalités de mise en cache que ASP.NET Cache ne possède pas. Voici une liste partielle:

En savoir plus sur tous NCache Caractéristiques.

Comment utiliser rapidement NCache?

Voici quelques étapes simples que vous pourriez suivre pour en bénéficier rapidement :

  1. Installer NCache: sur vos serveurs web et deux serveurs de cache
  2. Créer une cache: via une interface graphique basée NCache Outil de gestion
  3. Mettre en cache les données d'application dans NCache: Vous devrez vous référer NCache assemblages puis faire NCache Appels d'API pour stocker et récupérer vos objets .NET à partir du cache
  4. Surveiller les performances ASP.NET: Vous pouvez maintenant surveiller les performances ASP.NET et également NCache la performance. NCache fournit un riche ensemble de compteurs PerfMon que vous pouvez surveiller avec

Que faire ensuite?

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.