Verteilter In-Memory-Cache ist heute für Anwendungen, die in einer Umgebung mit mehreren Servern ausgeführt werden, sehr beliebt geworden, da er zur Verbesserung der Anwendungsskalierbarkeit und -leistung beiträgt. Bis .NET Framework 3.5 gab es ein ASP.NET-Cache-Objekt, das nur für Webanwendungen unter dem System.Web.Caching-Namespace verfügbar war. Aber in .NET Framework 4.0, .NET 4.0 Cache wird unter System.Runtime.Caching-Namespace für alle Arten von .NET-Anwendungen hinzugefügt. .NET 4.0 Cache verfügt über ähnliche Funktionen wie ASP.NET Cache. Im Gegensatz zu ASP.NET Cache verfügt es jedoch über eine abstrakte Klasse ObjectCache, die bei Bedarf auf angepasste Weise implementiert werden kann. Im Wesentlichen kann also der .NET 4.0-Cache erweitert werden, was der ASP.NET-Cache nicht kann. Und MemoryCache ist die standardmäßige In-Memory-Cache-Implementierung von .NET 4.0 Cache. Hier ist ein Beispiel:
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); |
Eine Einschränkung der Standardimplementierung von .NET 4.0 Cache, MemoryCache, besteht darin, dass es sich um einen eigenständigen In-Process-Cache handelt. Wenn Ihre .NET-Anwendung in einer Umgebung mit mehreren Servern ausgeführt wird, können Sie dies nicht verwenden, da Sie einen verteilten Cache benötigen, der den Cache über mehrere Server hinweg synchronisieren kann. Aber glücklicherweise ermöglicht uns die .NET 4.0 Cache-Architektur, eine verteilte Cache-Lösung eines Drittanbieters einzubinden und zu erweitern.
Um diesem Bedarf gerecht zu werden, Alachisoft hat einen benutzerfreundlichen .NET 4.0-Cache-Anbieter implementiert, der Probleme mit der Datensynchronisierung, -verteilung und -skalierbarkeit lösen kann, insbesondere im Fall von Webfarmen/-gärten. Dieser Anbieter integriert grundsätzlich NCache mit .NET 4.0-Cache. NCache ist ein sehr beliebter verteilter Cache auf Unternehmensebene für .NET. Durch NCache.NET 4.0 Cache Provider von können Sie einstecken NCache mit Ihrer Anwendung, um die Vorteile eines verteilten Caches zu nutzen. Lassen Sie mich Ihnen zeigen, wie einfach es mit gemacht werden kann NCache um ein paar Schritte.
- Erstellen Sie einen geclusterten (verteilten) Cache über GUI-basiert NCache Manager. Ich habe einen geclusterten Cache mit dem Namen „MeinClusterCache".
- Starten Sie den Cache, um ihn einsatzbereit zu machen.
- Referenzen hinzufügen von Alachisoft.NCache.ObjectCacheProvider-Bibliothek zu Ihrer Anwendung von „NCacheInstallationsverzeichnis/NCache/integration/DotNet4.0-Cache-Anbieter"
- Fügen Sie den folgenden Namespace in Ihr Projekt ein.
1using Alachisoft.NCache.ObjectCacheProvider; - Initialisieren Sie Ihren CacheProvider (von ObjectCache geerbt) und übergeben Sie Ihren Cache-Namen wie unten gezeigt an den Provider.
1234ObjectCache _cache;string _cacheId = "MyClusterCache" ;_cache = new CacheProvider(_cacheId); - Jetzt können Sie mit CacheProvider-Befehlen alle Cache-bezogenen Vorgänge an Ihrem Cache ausführen.
Hier ist ein vollständiges Beispiel für .NET 4.0 erweitert für 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 Die Implementierung von .NET 4.0 Cache umfasst auch die benutzerdefinierte Implementierung von ChangeMonitor as NCacheEntryChangeMonitor, NCacheFileChangeMonitor, NCacheSqlChangeMonitor und NCacheOracleChangeMonitor für Eintrags-, Datei-, SQL- und Oracle-basierte Änderungen. Durch NCache's Implementierung der .NET 4.0 Cache-Schnittstelle können Sie jetzt .NET 4.0 Cache als Ihren Standard übernehmen und gleichzeitig von einem verteilten Cache auf Unternehmensebene für Ihre .NET-Anwendungen profitieren, die in einer Umgebung mit mehreren Servern ausgeführt werden.
Hey Hallo!
NCache ObjectCacheProvider für .Net 4.0 Cache wurde offiziell eingestellt und damit auch die Assembly Alachisoft.NCache.ObjectCacheProvider wird nicht mehr mit ausgeliefert NCache Installation. Dies liegt daran, dass die Caching Application Block-Funktionalität jetzt integriert ist .NET Framework 4.0 und Enterprise-Bibliothek ist in Versionen nach .Net 5.0 veraltet. Die aktuelle .NET-Caching-Unterstützung umfasst kein Anbietermodell, das Integrationen von Drittanbietern wie z NCache einstecken.
Sie können die Verwendung NCache Objekt-Caching (Anwendungsdaten-Caching) API zum Zwischenspeichern von Objekten NCache indem Sie die Richtlinien im folgenden Link befolgen:
https://www.alachisoft.com/resources/docs/ncache/help/basic-cache-operations.html?mw=MjQw&st=MQ==&sct=MA==&ms=QwAAEAAAAAAAAAACASgE
Hallo Iqbal,
Ich versuche, den im Blog „How to Configure .NET 4.0 Cache to use a Distributed Cache?“ bereitgestellten Code zu implementieren.
Ich habe die Testversion von heruntergeladen NCache Enterprise 4.6
Ich muss Referenzen von hinzufügen Alachisoft.NCache.ObjectCacheProvider-Bibliothek zur Anwendung von „NCacheInstallationsverzeichnis/NCache/integration/DotNet4.0 Cache Provider“, aber ich kann es nicht sehen Alachisoft.NCache.ObjectCacheProvider.dll im Integrationsordner in meinem Installationsverzeichnis.
Können Sie mich bitte weiter führen, wo ich finden kann Alachisoft.NCache.ObjectCacheProvider.dll?
Ist diese Funktion verfügbar in Ncache 4.6? Wenn ja, wie erreicht man es?
Ich hoffe, so bald wie möglich von Ihnen zu hören.
Vielen Dank,
Sejal