Viele ASP.NET Anwendungen sind heute stark frequentiert und werden von Zehntausenden von Benutzern verwendet. Bei diesen Anwendungen treten Leistungsprobleme auf, da der Zugriff auf die Datenbank langsam ist, insbesondere bei hohem Netzwerkverkehr. Diese Latenz wird jetzt unerschwinglich, da Tausende von Benutzern auf diese Anwendungen zugreifen.
Um diese Leistungseinschränkung zu beheben, werden ASP.NET und ASP.NET Core bietet einen integrierten Caching-Mechanismus namens „ASP.NET Cache“, der Anwendungsdaten für einen schnelleren Zugriff im Arbeitsspeicher speichert und Datenbankauslösungen reduziert. Dadurch wird die Leistung Ihrer Anwendung verbessert.
NCache Details ASP .NET-Leistung .NET Core
Das integrierte ASP.NET-Caching hat Einschränkungen
Es besteht jedoch das Problem, dass der integrierte ASP.NET-Cache ein eigenständiger prozessinterner Cache ist, der sich im Arbeitsprozess Ihrer ASP.NET-Anwendung befindet. Daher ist es nur für eine Umgebung mit einem einzelnen Server sinnvoll.
Hier sind einige der Einschränkungen von ASP.NET Cache:
- Mehrere Cache-Instanzen nicht synchronisiert: Da ein ASP.NET-Cache Teil des ASP.NET-App-Prozesses ist, lässt er keine Synchronisierung von Cacheinstanzen zu, die auf mehreren ASP.NET-Apps ausgeführt werden. Dies führt zu Datenintegritätsproblemen.
- NET Worker-Prozess recycelt: Da der ASP.NET-Cache prozessintern ist, gehen alle zwischengespeicherten Daten verloren, wenn die ASP.NET-Arbeitsprozesse wiederverwendet werden. Der Cache muss dann von einer Datenquelle neu geladen werden, was zu einem großen Leistungseinbruch führt.
- Begrenzte Arbeitsspeichergröße: Der ASP.NET-Cache ist Teil des Arbeitsprozesses der ASP.NET-App. Daher gibt es nur begrenzten Speicher dieses Prozesses, der für das Caching verwendet werden kann.
Lösung: ASP.NET-Caching mit verteiltem Cache
Um diesen Einschränkungen des ASP.NET-Cachings entgegenzuwirken, benötigen Sie einen verteilten Cache wie z NCache das in einem eigenen Prozess auf mehreren Servern lebt und auch einen Mechanismus zum Synchronisieren von Caches in einer Webfarm bereitstellt.
So wird ein verteilter Cache wie z NCache löst Ihre Probleme mit ASP.NET-Caching:
- Ein verteilter Cache synchronisiert alle Cache-Instanzen, die von mehreren ASP.NET-App-Instanzen erstellt wurden, wodurch Ihr Datenintegritätsproblem gelöst wird.
- Da es sich um einen Out-Proc-Cache (Out-of-Process) handelt, kann er von mehreren Servern und Arbeitsprozessen gemeinsam genutzt werden.
- Durch die hohe Skalierbarkeit können Sie so viel Speicher verwenden, wie Sie möchten, da es keine Prozessbeschränkung gibt. Außerdem können Sie so viele Cache-Server haben, wie Sie möchten.
- Sie können Ihre ASP.NET-App-Caching-Server in Echtzeit skalieren.
- NCache verfügt auch über ein hochintelligentes System zur Datenreplikation ohne Leistungsprobleme. Die effiziente Datenreplikationsfunktion sorgt dafür, dass Sie sich ohne Datenverlustprobleme wohlfühlen.
NCache Details ASP .NET-Leistung ASP.NET Core Leistung
Wie verwende ich ASP.NET-Caching mit verteiltem Cache?
NCache bietet verschiedene Arten von Caching, die Sie verwenden können, um Ihre zu erhalten ASP.NET Apps laufen mit Caching.
App-Daten-Caching
App-Daten, die häufig aus Ihrer Datenquelle abgerufen werden müssen, können mithilfe von Datencaching in Ihrer ASP.NET-Anwendung zwischengespeichert werden, um die Antwortzeit für diese häufig aufgerufenen Daten zu verkürzen. Dazu gehören Ihre benutzerdefinierten Objektdaten, z. B. Produktklassenobjekte, wie im folgenden Beispiel gezeigt. Das Produktobjekt wird zum ersten Mal aus der Datenbank abgerufen und dann dem Cache hinzugefügt und beim nächsten Zugriff auf die Daten aus dem Cache abgerufen.
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 Details ASP.NET-Caching ASP.NET Core Sessions
Zwischenspeichern des ASP.NET-Sitzungsstatus
Sie können verwenden Sitzungs-Caching um benutzerrelevante Daten für Ihre ASP.NET-Anwendungen zu speichern. Sitzungsdaten gehören zu Benutzerinteraktionen in Ihrer ASP.NET-App. Beispielsweise kann es sich ein E-Commerce-Unternehmen nicht leisten, Sitzungen zu verlieren, falls der ASP.NET-Cache ausfällt. Sie können sich also anschließen NCache zu Ihrer ASP.NET-Anwendung, um Datenverlust zu vermeiden.
So verwenden Sie NCache Für das ASP.NET-Caching benötigen Sie keinen Programmieraufwand. Fügen Sie einfach die folgende Konfiguration hinzu Web.config Ihrer Bewerbung:
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> ... |
Ändern Sie die Konfiguration des Sitzungsstatus, um das Zwischenspeichern des Sitzungsstatus in ASP.NET zu aktivieren. In web.config folgenden Abschnitt hinzufügen:
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 Details ASP.NET-Sitzungscaching Dokumente zum ASP.NET-Sitzungscaching
ASP.NET View State Caching
ASP.NET View State bietet clientseitigen Zustandsverwaltungsmechanismus. Es hilft, Seiten- und Steuerwerte zwischen vollständigen Roundtrips für Clientanforderungen beizubehalten. Sie können speichern ASP.NET view state auf dem Webserver und senden eine eindeutige ID an den Browser zurück. Diese ID findet das Richtige ASP.NET view state im Cache.
Das Erreichen ASP.NET view state Zwischenspeichern NCache ist sehr leicht. Hier ist ein Teil der Konfiguration, der hinzugefügt werden muss Web.config Ihrer ASP.NET-Anwendung:
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 Details ASP.NET View State Caching NCache Docs
ASP.NET-Ausgabecaching
Für Webseiten, auf die häufig zugegriffen wird, können Sie verwenden Ausgabe-Caching um die Antwortzeiten für diese spezifischen Seiten zu verbessern. Das Ausgabe-Caching-System von ASP.NET speichert die verschiedenen Versionen des Seiteninhalts in Abhängigkeit von den verschiedenen Parametern wie Abfragezeichenfolgenparametern und Browsertyp.
Sie können das Output-Caching mit aktivieren NCache in Ihrer ASP.NET-Anwendung ohne Codeänderung und einfaches Einstecken des Folgenden 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 Details NCache Caching-Dokumente ausgeben ASP.NET-Ausgabecache
Fazit
Zusammenfassend lässt sich sagen, dass ein verteilter Cache wie NCache ist hochgradig skalierbar, zuverlässig und leistungsoptimiert, um das Caching in ASP.NET zu handhaben. Es verfügt über alle erforderlichen Funktionen, um alle Einschränkungen des ASP.NET-Cachings zu überwinden, und ist der einzige verteilte Cache, der das ASP.NET-Caching eigenständig verarbeiten kann, ohne dass Sie sich darum kümmern müssen. Mit allen Arten von Caching, die mit verfügbar sind NCache, können Sie jede Art von Daten, die Ihre Anwendung benötigt, einfach zwischenspeichern, indem Sie eine Leistungssteigerung sicherstellen.
Sehr guter Artikel, Ron. Das ASP.NET-Caching wird ausführlich erklärt. Der verteilte Cache NCache ist zuverlässig und bietet eine bessere Leistung für ASP.NET. Es hilft, die Einschränkungen des ASP.NET-Cachings zu überwinden. Der Artikel gibt ein klares Bild davon, wie das verteilte Caching durchgeführt werden kann.