¿Cómo funciona el almacenamiento en caché en una aplicación web?

Existen muchos mecanismos de almacenamiento en caché utilizados en aplicaciones web. Se pueden clasificar en términos generales en los siguientes tipos.

  1. Almacenamiento en caché de contenido.
  2. Almacenamiento en caché de fragmentos.
  3. Almacenamiento en caché de datos.

Almacenamiento en caché de contenido

Si el contenido de una URL en particular no cambia con frecuencia, entonces no hay necesidad de generarlo dinámicamente cada vez. El HTML completo se puede almacenar en memoria caché.

Un ejemplo puede ser una página de artículo. Un artículo no cambia con frecuencia. El contenido de cada artículo puede generarse dinámicamente en la primera solicitud y almacenarse en caché. Las solicitudes posteriores se pueden atender a través de HTML en caché.

Almacenamiento en caché de fragmentos

A veces, toda la página no se puede almacenar en caché. Hay algo de contenido en la página que es dinámico, pero hay partes que no cambian con frecuencia. El HTML para estas partes estáticas se puede generar en la primera solicitud y luego servir desde el caché para solicitudes posteriores

Almacenamiento en caché de datos

Las aplicaciones web generalmente están respaldadas por la base de datos. Por lo general, es costoso en términos de rendimiento obtener datos de la base de datos cada vez. Los objetos de datos utilizados con frecuencia se pueden almacenar en caché en la memoria de la aplicación o en otros almacenes de datos en memoria como redis y mem-cache.

Puede haber otros tipos de almacenamiento en caché también. Pero en este momento estos son los que me vienen a la mente.

Las aplicaciones web generalmente crean información al tomar una solicitud, procesarla, recuperar información de una base de datos, procesarla, procesar la salida en html y enviarla de regreso. Esto lleva mucho tiempo y esfuerzo. El almacenamiento en caché generalmente toma la salida html de la última solicitud que se procesó y la mantiene para la próxima solicitud idéntica. Luego, en lugar de pasar por todo el ciclo de procesamiento y base de datos, simplemente entrega la salida anterior al nuevo solicitante. ¿Es la última información absoluta más grande? No. ¿El cliente lo consigue rápido? Sí.

Una analogía puede ser el lugar de hamburguesas artesanales frente al lugar de comida rápida. En el establecimiento de hamburguesas artesanales, cada hamburguesa se hace a pedido cuando se solicita. La hamburguesa que obtienes es fresca, caliente y exactamente lo que quieres. La desventaja es que tienes que esperar un poco. El lugar de la cadena de hamburguesas prepara previamente las hamburguesas y las mantiene bajo las lámparas de calor listas para servir cuando se solicitan. ¿Es la hamburguesa que obtienes fresca y exactamente hecha para ti? No. ¿Lo entiendes rápido? Sí.

Esperemos que ahora pueda ver las compensaciones del almacenamiento en caché en las aplicaciones web.

More Interesting

¿Cómo funciona la arquitectura cliente - servidor?

¿Cuáles son las diferencias entre Django, Flask y Web2py en términos de funcionalidad y facilidad?

¿Cuál es el mejor sitio web para aprender J2EE de la noche a la mañana?

Cómo llamar la atención sobre tu nueva aplicación web

¿Cuál es el mejor marco para el desarrollo de aplicaciones web: Django o RoR o CakePHP?

¿Qué tipo de aplicaciones web simples y completas pueden construir un principiante en PHP para mejorar sus habilidades?

¿Cuál es mejor para el desarrollo web, Ruby on Rails o PHP? ¿Y por qué?

¿Cuáles son los parámetros básicos que deciden cuándo necesitamos agregar servidores adicionales para aplicaciones web (LAMP)?

¿Cuáles son las cosas más importantes que debemos tener en cuenta para mantener segura la API web para una aplicación de Android?

¿Debería usar GitHub como servidor de archivos para mi aplicación web, o debería usar algo como S3 para almacenar archivos de código fuente?

¿Cuál es la mejor manera de comenzar a crear un back-end para una aplicación web?

¿Laravel es adecuado para el desarrollo de aplicaciones web empresariales?

Cómo ejecutar la misma aplicación Node.js que una aplicación de consola y también una aplicación de navegador

¿Es una mala idea hacer una aplicación web donde la autenticación del usuario se sirve de una manera y todo lo demás está separado?

¿Cuáles son las mejores soluciones de redes sociales en una caja disponibles en la actualidad, tanto gratuitas como de pago?