Muchos ASP.NET Las aplicaciones de hoy en día tienen mucho tráfico y son utilizadas por decenas de miles de usuarios. Estas aplicaciones enfrentan problemas de rendimiento porque el acceso a la base de datos es lento, especialmente cuando el tráfico de red es alto. Esta latencia ahora se está volviendo inasequible ya que miles de usuarios acceden a estas aplicaciones.
Para resolver esta restricción de rendimiento, ASP.NET y ASP.NET Core proporciona un mecanismo de almacenamiento en caché incorporado llamado "ASP.NET Cache" que almacena los datos de la aplicación en la memoria para un acceso más rápido y reduce los viajes a la base de datos. Por lo tanto, mejorar el rendimiento de su aplicación.
NCache Detalles Rendimiento de ASP .NET .NET Core
El almacenamiento en caché ASP.NET incorporado tiene limitaciones
Sin embargo, existe el problema de que la memoria caché ASP.NET integrada es una memoria caché en proceso independiente que vive dentro del proceso de trabajo de la aplicación ASP.NET. Como resultado, solo es útil para un entorno de servidor único.
Estas son algunas de las limitaciones de ASP.NET Cache:
- Múltiples instancias de caché no sincronizadas: Dado que una caché ASP.NET es parte del proceso de la aplicación ASP.NET, no permite la sincronización de instancias de caché que se ejecutan en varias aplicaciones ASP.NET. Esto causa problemas de integridad de datos.
- Reciclaje de procesos de NET Worker: Como la caché de ASP.NET está en proceso, todos los datos almacenados en caché se pierden cuando se reciclan los procesos de trabajo de ASP.NET. Luego, el caché debe recargarse desde una fuente de datos, lo que provoca un gran impacto en el rendimiento.
- Tamaño de memoria de proceso de trabajo limitado: La memoria caché ASP.NET es parte del proceso de trabajo de la aplicación ASP.NET. Por lo tanto, hay memoria limitada de este proceso para usar para el almacenamiento en caché.
Solución: almacenamiento en caché de ASP.NET con caché distribuida
Para contrarrestar estas limitaciones del almacenamiento en caché de ASP.NET, necesita un caché distribuido como NCache que vive en su propio proceso en varios servidores y también proporciona un mecanismo para sincronizar cachés en una granja web.
Así es como un caché distribuido como NCache resuelve sus problemas con el almacenamiento en caché de ASP.NET:
- Un caché distribuido sincroniza todas las instancias de caché creadas por múltiples instancias de aplicaciones ASP.NET, lo que resuelve su problema de integridad de datos.
- Dado que es un caché fuera de proceso (fuera de proceso), puede ser compartido por varios servidores y procesos de trabajo.
- La alta escalabilidad le permite usar tanta memoria como desee ya que no hay limitación de proceso. También le permite tener tantos servidores de caché como desee.
- Puede escalar sus servidores de almacenamiento en caché de aplicaciones ASP.NET en tiempo real.
- NCache también tiene un sistema altamente inteligente de replicación de datos sin problemas de rendimiento. La función de replicación de datos eficiente lo mantiene cómodo sin ningún problema de pérdida de datos.
NCache Detalles Rendimiento de ASP .NET ASP.NET Core Rendimiento
¿Cómo usar el almacenamiento en caché de ASP.NET con caché distribuida?
NCache proporciona diferentes tipos de almacenamiento en caché que puede utilizar para obtener su ASP.NET aplicaciones en funcionamiento con almacenamiento en caché.
Almacenamiento en caché de datos de aplicaciones
Los datos de la aplicación que deben obtenerse con frecuencia de su fuente de datos se pueden almacenar en caché en su aplicación ASP.NET utilizando el almacenamiento en caché de datos para reducir el tiempo de respuesta para estos datos de acceso frecuente. Esto incluye los datos de su objeto personalizado, como los objetos de clase de producto, como se muestra en el siguiente ejemplo. El objeto Producto se obtiene de la base de datos por primera vez y luego se agrega a la memoria caché y se obtiene de la memoria caché la próxima vez que se accede a los datos.
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 Detalles Almacenamiento en caché de ASP.NET ASP.NET Core Talleres
Caché de estado de sesión de ASP.NET
Puedes usar almacenamiento en caché de la sesión para almacenar datos relevantes del usuario para sus aplicaciones ASP.NET. Los datos de la sesión pertenecen a las interacciones del usuario en su aplicación ASP.NET. Por ejemplo, una empresa de comercio electrónico no puede permitirse perder sesiones en caso de que se caiga la caché de ASP.NET. Por lo tanto, puede conectar NCache a su aplicación ASP.NET para evitar la pérdida de datos.
Para utilizar NCache para el almacenamiento en caché de ASP.NET, no necesita ningún esfuerzo de programación. Simplemente agregue la siguiente configuración a web.config de su aplicación:
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> ... |
Modifique la configuración del estado de la sesión para habilitar el almacenamiento en caché del estado de la sesión en ASP.NET. En web.config agregue la siguiente sección:
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 Detalles Caché de sesión ASP.NET Documentos de almacenamiento en caché de sesión de ASP.NET
ASP.NET View State Almacenamiento en caché
ASP.NET View State proporciona un mecanismo de gestión de estado del lado del cliente. Ayuda a conservar la página y los valores de control entre viajes completos de ida y vuelta para las solicitudes de los clientes. Puedes almacenar ASP.NET view state en el servidor web y envía una identificación única al navegador. Este ID encontrará el derecho ASP.NET view state en el caché.
Conseguir ASP.NET view state almacenando en caché NCache es muy fácil. Aquí hay una parte de la configuración que debe agregarse a web.config de su aplicación 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 Detalles ASP.NET View State Almacenamiento en caché NCache Docs
Almacenamiento en caché de resultados de ASP.NET
Para las páginas web a las que se accede con frecuencia, puede utilizar almacenamiento en caché de salida para mejorar los tiempos de respuesta para estas páginas específicas. El sistema de almacenamiento en caché de salida de ASP.NET almacena en caché las diferentes versiones del contenido de las páginas según los diversos parámetros, como los parámetros de la cadena de consulta y el tipo de navegador.
Puede habilitar el almacenamiento en caché de salida con NCache en su aplicación ASP.NET sin ningún cambio de código y simplemente conectando lo siguiente en 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 Detalles NCache Documentos de almacenamiento en caché de salida Caché de salida ASP.NET
Conclusión
Para resumir, un caché distribuido como NCache es altamente escalable, confiable y tiene un rendimiento optimizado para manejar el almacenamiento en caché en ASP.NET. Tiene todas las funciones necesarias para superar todas las limitaciones del almacenamiento en caché de ASP.NET y es el único caché distribuido que puede manejar el almacenamiento en caché de ASP.NET por sí solo sin que usted se preocupe por ello. Con todos los tipos de almacenamiento en caché disponibles con NCache, puede almacenar en caché fácilmente cualquier tipo de datos que requiera su aplicación, al garantizar un aumento en el rendimiento.
Muy buen artículo Ron. El almacenamiento en caché de ASP.NET se explica en detalle. La caché distribuida NCache es confiable y ofrece un mejor rendimiento para ASP.NET. Ayuda a superar las limitaciones del almacenamiento en caché de ASP.NET. El artículo ofrece una imagen clara de cómo se puede realizar el almacenamiento en caché distribuido.