Le cache distribué en mémoire est aujourd'hui devenu très populaire pour les applications s'exécutant dans un environnement multiserveur, car il permet d'améliorer l'évolutivité et les performances des applications. Jusqu'à .NET Framework 3.5, l'objet ASP.NET Cache n'était disponible que pour les applications Web sous l'espace de noms System.Web.Caching. Mais en .NET Framework 4.0, le cache .NET 4.0 est ajouté sous l'espace de noms System.Runtime.Caching pour tous les types d'applications .NET. .NET 4.0 Cache a des fonctionnalités similaires à ASP.NET Cache. Mais, contrairement à ASP.NET Cache, il possède une classe abstraite ObjectCache qui peut être implémentée de manière personnalisée selon les besoins. Ainsi, par essence, le cache .NET 4.0 peut être étendu, ce que le cache ASP.NET ne peut pas être. Et, MemoryCache est l'implémentation de cache en mémoire par défaut du cache .NET 4.0. Voici un exemple:
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 |
private static ObjectCache cache = MemoryCache.Default; private CacheItemPolicy policy = null; private CacheEntryRemovedCallback callback = null; // Registering callbacks and policies… callback = new CacheEntryRemovedCallback(this.MyCachedItemRemovedCallback); policy = new CacheItemPolicy(); policy.Priority = (MyCacheItemPriority == MyCachePriority.Default) ? CacheItemPriority.Default : CacheItemPriority.NotRemovable; policy.RemovedCallback = callback; HostFileChangeMonitor changeMonitor = new HostFileChangeMonitor(FilePath); policy.ChangeMonitors.Add(changeMonitor); // Add inside cache… cache.Set(CacheKeyName, CacheItem, policy); |
Une limitation de l'implémentation par défaut de .NET 4.0 Cache, MemoryCache, est qu'il s'agit d'un cache in-process autonome. Si votre application .NET s'exécute dans un environnement multiserveur, vous ne pouvez pas l'utiliser car vous avez besoin d'un cache distribué capable de synchroniser le cache sur plusieurs serveurs. Mais heureusement, l'architecture de cache .NET 4.0 nous permet de brancher une solution de cache distribuée tierce et de l'étendre.
Pour répondre à ce besoin, Alachisoft a implémenté un fournisseur de cache .NET 4.0 facile à utiliser qui peut résoudre les problèmes de synchronisation, de distribution et d'évolutivité des données, en particulier en cas de ferme/jardin Web. Ce fournisseur intègre essentiellement NCache avec le cache .NET 4.0. NCache est un cache distribué de niveau entreprise très populaire pour .NET. Par NCachedu fournisseur de cache .NET 4.0 que vous pouvez brancher NCache avec votre application pour bénéficier des avantages d'un cache distribué. Laissez-moi vous montrer à quel point cela peut être fait facilement avec NCache par quelques marches.
- Créer un cache en cluster (distribué) via une interface graphique NCache Gestionnaire. J'ai créé un cache en cluster nommé "MonClusterCache ».
- Démarrez le cache pour le rendre prêt à l'emploi.
- Ajouter des références de Alachisoft.NCacheBibliothèque .ObjectCacheProvider à votre application à partir de "NCacheRépInstall/NCache/integration/Fournisseur de cache DotNet4.0"
- Incluez l'espace de noms suivant dans votre projet.
1using Alachisoft.NCache.ObjectCacheProvider; - Initialisez votre CacheProvider (hérité d'ObjectCache) et transmettez votre nom de cache au fournisseur comme indiqué ci-dessous.
1234ObjectCache _cache;string _cacheId = "MyClusterCache" ;_cache = new CacheProvider(_cacheId); - Vous pouvez maintenant effectuer toutes les opérations liées au cache sur votre cache à l'aide des commandes CacheProvider.
Voici un exemple complet de .NET 4.0 étendu pour NCache:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
ObjectCache _cache; string _cacheId = "MyClusterCache" ; // Initialize with NCache’s .NET 4.0 Cache Provider. _cache = new CacheProvider(_cacheId); // Registering callbacks and policies… NCacheFileChangeMonitor changeMonitor = new NCacheFileChangeMonitor(fileNames); CacheItemPolicy ciPolicy = new CacheItemPolicy(); ciPolicy.ChangeMonitors.Add(changeMonitor); ciPolicy.RemovedCallback += new CacheEntryRemovedCallback(onCacheEntryRemoved); //Add the dependent items in the cache. _cache.AddItems(ciPolicy, 0, totalKeys); |
NCache l'implémentation de .NET 4.0 Cache inclut également l'implémentation personnalisée de ChangeMonitor en tant que NCacheMoniteur de changement d'entrée, NCacheFileChangeMonitor, NCacheSqlChangeMonitor ainsi que NCacheOracleChangeMonitor pour les modifications basées respectivement sur les entrées, les fichiers, SQL et Oracle. Par NCacheGrâce à l'implémentation de l'interface de cache .NET 4.0, vous pouvez désormais adopter le cache .NET 4.0 comme norme et bénéficier en même temps d'un cache distribué au niveau de l'entreprise pour vos applications .NET s'exécutant dans un environnement multiserveur.
Salut salut!
NCache ObjectCacheProvider pour .Net 4.0 Cache a été officiellement interrompu et donc l'assemblage Alachisoft.NCache.ObjectCacheProvider n'est plus livré avec NCache installation. En effet, la fonctionnalité de mise en cache du bloc d'application est désormais intégrée à .NET Framework 4.0 et la bibliothèque Enterprise sont obsolètes dans les versions postérieures à .Net 5.0. La prise en charge actuelle de la mise en cache .NET n'est pas fournie avec un modèle de fournisseur qui limite les intégrations tierces telles que NCache brancher.
Vous pouvez utiliser le NCache mise en cache d'objets (mise en cache des données d'application) API pour la mise en cache d'objets dans NCache en suivant les directives dans le lien ci-dessous :
https://www.alachisoft.com/resources/docs/ncache/help/basic-cache-operations.html?mw=MjQw&st=MQ==&sct=MA==&ms=QwAAEAAAAAAAAAACASgE
Salut Iqbal,
J'essaie d'implémenter le code fourni dans le blog 'Comment configurer le cache .NET 4.0 pour utiliser un cache distribué ?'
J'ai téléchargé la version d'essai de NCache Enterprise 4.6.
Je dois ajouter des références de Alachisoft.NCachebibliothèque .ObjectCacheProvider à l'application à partir de "NCacheRépInstall/NCache/integration/DotNet4.0 Cache Provider" mais je ne vois pas Alachisoft.NCache.ObjectCacheProvider.dll sous le dossier d'intégration dans mon répertoire d'installation.
Pouvez-vous s'il vous plaît me guider davantage où puis-je trouver Alachisoft.NCache.ObjectCacheProvider.dll ?
Cette fonctionnalité est-elle disponible dans Ncache 4.6 ? Si oui, comment y parvenir ?
J'espère avoir de vos nouvelles dès que possible.
Merci,
Séjal