Qué capa debo implementar el almacenamiento en caché

Mi sitio web se está yendo. Sin embargo, tener muchos clientes para llamar al servidor para obtener datos que se conectarán a la base de datos para recuperar. Para mejorar el rendimiento de la base de datos, necesito implementar caché en el servidor web.

Debería implementarlo en la capa de acceso a datos o modelo. Estoy usando ASP.NET MVC. Gracias.

preguntado el 04 de julio de 12 a las 09:07

¿Cómo se implementa su capa de acceso a datos? ¿Es un ORM o está codificado a mano? -

¿Qué estás almacenando en caché? ¿Con qué frecuencia se solicita? ¿Cuántas variaciones de él hay? ¿Como es de grande? ¿Cuántos usuarios concurrentes? ¿Cuánto tiempo puede soportar los datos "obsoletos"? ¿Por qué desea almacenar en caché en su capa de acceso a datos? -

Comience almacenando en caché métodos de controlador completos donde tenga sentido.. -

1 Respuestas

Podría haber 2 niveles de almacenamiento en caché en una aplicación web:

  1. Almacenamiento en caché de acciones completas o fragmentos de HTML
  2. Almacenamiento en caché de objetos de resultados de operaciones de acceso a datos

El primer escenario se logra decorando acciones/acciones infantiles con el [OutputCache] atributo.

El segundo es más detallado y dependerá de su configuración. Por ejemplo, si está utilizando un ORM como NHibernate, tal vez su ORM ya admita el almacenamiento en caché. Por ejemplo, NHibernate admite caché de segundo nivel que incluso podría externalizarse mediante proveedores de almacenamiento en caché. Entonces, si está utilizando un ORM, diríjase a la documentación de su ORM para ver si admite dicha funcionalidad de almacenamiento en caché.

Si su ORM no admite el almacenamiento en caché o no está utilizando un ORM en absoluto, entonces podría crear el almacenamiento en caché usted mismo. Esto podría lograrse en su capa de servicio donde podría inyectar algún proveedor de caché como dependencia y cuando su servicio consulte sus repositorios, almacene en caché los resultados devueltos por esos repositorios utilizando el proveedor.

Respondido 04 Jul 12, 14:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.