2010-02-25 20 views
5

Estoy buscando en el almacenamiento en caché con ASP.NET MVC y también estoy en medio de la finalización de alojamiento web. Tengo dos preguntas ...asp.net mvc - almacenamiento en caché

1) ¿El almacenamiento en caché plantea un problema cuando se realiza en un entorno de alojamiento compartido ya que se comparten recursos y todo? Esta pregunta puede sonar tonta, pero no sé cómo funciona el almacenamiento en caché detrás de la escena.

2) Antes de implementar el almacenamiento en caché, quiero preguntar si este enfoque tiene sentido. Guardaré en la memoria caché todo lo posible e invalidaré cuando sea necesario. Sin embargo, ¿cómo funciona el almacenamiento en caché para una lista de elementos que se actualiza con mucha frecuencia, por ejemplo, en un minuto o algo así? Por ejemplo, la página principal de StackOverflow, con tantas preguntas que se agregan cada minuto, ¿puede la página de inicio realmente almacenarse en caché?

EDITAR: 3) También me gustaría analizar cómo funciona el almacenamiento en caché con paginación y todo.

+0

tiene que categorizar los elementos que desea almacenar en caché. las cosas que se actualizan con frecuencia no son buenas para guardarlas en caché. En el escenario de ** stackoverflow ** no lo haré almacenable en caché. Cosas como la información de la cuenta de usuario de configuración de todo el sitio cuando inicia sesión, etc. estas cosas se pueden almacenar en caché. Además, si puede usar cualquier software de caché de terceros, será mejor que ** ** memcached **. –

+0

por lo que está implicando que memcached es mejor que el almacenamiento en caché de ASP.NET? – TPR

+0

no es tan simple como mejor o peor. Si el almacenamiento en caché integrado hace lo que necesita, entonces no lo va a hacer mejor ... lo que debe hacer, sin embargo, es colocar su propio contenedor (como una interfaz) alrededor de la memoria caché, de esa manera será sencillo cambiar la implementación subyacente en caso de que lo necesites. – Murph

Respuesta

1

Creo que un minuto es mucho tiempo si está atendiendo 200 solicitudes por segundo y hubiera pensado que SO usa el caché de salida asp.net para la página principal. También es muy probable que utilicen algún tipo de donut caching para almacenar en caché las partes no específicas del usuario.

Asp.net MVC utiliza el proveedor de caché ASP.NET estándar sin cambios. En un host compartido, el almacenamiento en caché debe funcionar correctamente; sin embargo, tenga en cuenta que el host puede bloquear la configuración del caché si lo elige a nivel de máquina. El proveedor de caché trata con la administración de la memoria y eliminará los elementos de la caché si el uso de la memoria es demasiado alto. Le sugiero que lea las páginas de MSDN en el almacenamiento en caché here.

La complicación proviene de un entorno agrupado no tanto como un host compartido. En un entorno en clúster, la memoria caché no se distribuye a todas las máquinas, por lo que cada máquina tiene una copia separada de la memoria caché. Si esto presenta un problema, entonces deberá investigar una solución de almacenamiento en caché distribuida, pero en la mayoría de los casos simples, esto está bien.

Con respecto a la paginación, la función de caché de salida de asp.net le permite variar, por cadena de consulta, de modo que si tiene www.url.com? Page = 1, esto se almacenará por separado en la memoria caché de www.url .com? page = 2.

Cuestiones relacionadas