Molti ASP.NET le applicazioni oggi sono ad alto traffico e sono utilizzate da decine di migliaia di utenti. Queste applicazioni devono affrontare problemi di prestazioni perché l'accesso al database è lento, soprattutto quando il traffico di rete è elevato. Questa latenza sta diventando insostenibile poiché migliaia di utenti accedono a queste applicazioni.
Per risolvere questo vincolo di prestazioni, ASP.NET e ASP.NET Core fornisce un meccanismo di memorizzazione nella cache integrato chiamato "ASP.NET Cache" che archivia i dati dell'applicazione in memoria per un accesso più rapido e riduce i viaggi del database. Migliorando così le prestazioni della tua applicazione.
NCache Dettagli Prestazioni ASP .NET .NET Core
La memorizzazione nella cache ASP.NET incorporata presenta limitazioni
Tuttavia, c'è un problema che la cache ASP.NET incorporata è una cache in-process autonoma che risiede all'interno del processo di lavoro dell'applicazione ASP.NET. Di conseguenza, è utile solo per un ambiente a server singolo.
Ecco alcune delle limitazioni di ASP.NET Cache:
- Istanze cache multiple non sincronizzate: Poiché una cache ASP.NET fa parte del processo dell'app ASP.NET, non consente la sincronizzazione delle istanze della cache in esecuzione su più app ASP.NET. Ciò causa problemi di integrità dei dati.
- Ricicla il processo di lavoro NET: Poiché la cache ASP.NET è in corso, tutti i dati memorizzati nella cache vengono persi quando i processi di lavoro ASP.NET vengono riciclati. La cache deve quindi essere ricaricata da un'origine dati, causando un grande calo delle prestazioni.
- Dimensioni limitate della memoria del processo di lavoro: La cache ASP.NET fa parte del processo di lavoro dell'app ASP.NET. Quindi, c'è una memoria limitata di questo processo da usare per la memorizzazione nella cache.
Soluzione: cache ASP.NET con cache distribuita
Per contrastare queste limitazioni della memorizzazione nella cache di ASP.NET, è necessaria una cache distribuita come NCache che vive nel proprio processo su più server e fornisce anche un meccanismo per sincronizzare le cache in una web farm.
Ecco come una cache distribuita come NCache risolve i tuoi problemi con la memorizzazione nella cache di ASP.NET:
- Una cache distribuita sincronizza tutte le istanze della cache create da più istanze di app ASP.NET che risolve il problema di integrità dei dati.
- Poiché è una cache out-proc (fuori processo), può essere condivisa da più server e processi di lavoro.
- L'elevata scalabilità consente di utilizzare tutta la memoria che si desidera poiché non vi è alcuna limitazione di processo. Ti consente anche di avere tutti i server cache che desideri.
- È possibile ridimensionare i server di memorizzazione nella cache delle app ASP.NET in tempo reale.
- NCache ha anche un sistema altamente intelligente di replica dei dati senza problemi di prestazioni. L'efficiente funzione di replica dei dati ti tiene a tuo agio senza problemi di perdita di dati.
NCache Dettagli Prestazioni ASP .NET ASP.NET Core Prestazione
Come utilizzare la cache ASP.NET con cache distribuita?
NCache fornisce diversi tipi di memorizzazione nella cache che puoi utilizzare per ottenere il tuo ASP.NET app attive e funzionanti con memorizzazione nella cache.
Memorizzazione nella cache dei dati dell'app
I dati dell'app che devono essere recuperati frequentemente dall'origine dati possono essere memorizzati nella cache nell'applicazione ASP.NET usando la memorizzazione nella cache dei dati per ridurre i tempi di risposta per questi dati a cui si accede di frequente. Ciò include i dati dell'oggetto personalizzato come gli oggetti della classe Product, come mostrato nell'esempio seguente. L'oggetto Product viene prelevato dal database per la prima volta, quindi aggiunto alla cache e prelevato dalla cache al successivo accesso ai dati.
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 Dettagli Caching ASP.NET ASP.NET Core Sessioni
Memorizzazione nella cache dello stato della sessione ASP.NET
Puoi usare memorizzazione nella cache della sessione per archiviare i dati rilevanti per l'utente per le tue applicazioni ASP.NET. I dati della sessione appartengono alle interazioni dell'utente nell'app ASP.NET. Ad esempio, un'azienda di e-commerce non può permettersi di perdere sessioni nel caso in cui la cache ASP.NET si interrompa. Quindi, puoi collegarti NCache all'applicazione ASP.NET per prevenire la perdita di dati.
Per utilizzare NCache per la memorizzazione nella cache ASP.NET, non è necessario alcuno sforzo di programmazione. Aggiungi semplicemente la seguente configurazione a web.config della tua domanda:
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> ... |
Modifica la configurazione dello stato della sessione per abilitare la memorizzazione nella cache dello stato della sessione in ASP.NET. In web.config aggiungi la seguente sezione:
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 Dettagli Memorizzazione nella cache della sessione ASP.NET Documenti di memorizzazione nella cache della sessione ASP.NET
ASP.NET View State Caching
ASP.NET View State fornisce un meccanismo di gestione dello stato lato client. Aiuta a preservare la pagina e controllare i valori tra viaggi di andata e ritorno completi per le richieste dei clienti. Puoi memorizzare ASP.NET view state sul server web e inviare un ID univoco al browser. Questo ID troverà il diritto ASP.NET view state nella cache.
Il raggiungimento di ASP.NET view state memorizzazione nella cache NCache è molto semplice. Ecco una parte della configurazione che deve essere aggiunta web.config della tua applicazione 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 Dettagli ASP.NET View State Caching NCache Docs
Cache di output ASP.NET
Per le pagine Web a cui si accede frequentemente, è possibile utilizzare cache di output per migliorare i tempi di risposta per queste pagine specifiche. Il sistema di memorizzazione nella cache dell'output di ASP.NET memorizza nella cache le diverse versioni del contenuto delle pagine in base ai vari parametri come i parametri della stringa di query e il tipo di browser.
È possibile abilitare la memorizzazione nella cache di output con NCache nell'applicazione ASP.NET senza alcuna modifica al codice e semplicemente collegando quanto segue 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 Dettagli NCache Output di documenti di memorizzazione nella cache Cache di output ASP.NET
Conclusione
Per riassumere, una cache distribuita come NCache è altamente scalabile, affidabile e ottimizzato per le prestazioni per gestire la memorizzazione nella cache in ASP.NET. Ha tutte le funzionalità necessarie per superare tutte le limitazioni della memorizzazione nella cache ASP.NET ed è l'unica cache distribuita in grado di gestire la memorizzazione nella cache ASP.NET da sola senza che te ne preoccupi. Con tutti i tipi di memorizzazione nella cache disponibili con NCache, puoi facilmente memorizzare nella cache qualsiasi tipo di dati richiesto dalla tua applicazione, garantendo un aumento delle prestazioni.
Ottimo articolo, Ron. La memorizzazione nella cache di ASP.NET è spiegata in dettaglio. La cache distribuita NCache è affidabile e offre prestazioni migliori per ASP.NET. Aiuta a superare i limiti della memorizzazione nella cache di ASP.NET. L'articolo fornisce un quadro chiaro di come è possibile eseguire la memorizzazione nella cache distribuita.