El Granular Caching usa Advanced Cache Keys para almacenar diferentes versiones del mismo contenido basado en información específica de la solicitud HTTP — permitiendo caching personalizado sin contaminación de sesión.
¿Qué es Granular Caching?
Granular Caching es la capacidad de definir qué debe ser cacheado basándose en información específica de la solicitud HTTP. A diferencia del cache “todo o nada”, el Granular Caching usa Advanced Cache Keys para segmentar el contenido almacenado.
Esta técnica responde una pregunta específica: “¿Qué exactamente debo cachear — y con qué regla de segmentación?”
Mientras Micro Caching define por cuánto tiempo cachear, y Tiered Caching define en cuántas capas distribuir el cache, el Granular Caching define qué cachear y con qué clave.
Cómo funciona el Granular Caching
Cuando una solicitud llega a un punto de presencia en la infraestructura distribuida, el sistema construye una clave de cache — un identificador único que determina si existe una respuesta cacheada para esa solicitud específica.
En el cache básico, la clave de cache es típicamente solo la URL. En el Granular Caching, la clave de cache incluye criterios adicionales de segmentación:
Clave de Cache Básica: /api/producto/123Clave de Cache Granular: /api/producto/123 + header:Device-Type + cookie:session_idEsto significa que diferentes usuarios o dispositivos pueden recibir diferentes versiones cacheadas de la misma URL — sin mezclar datos entre sesiones.
Advanced Cache Keys: opciones de segmentación
Segmentación por header
Almacene versiones diferentes de una respuesta basada en headers HTTP como Device-Type, Accept-Language o User-Segment.
Casos de uso:
- Servir contenido diferente para usuarios mobile vs. desktop
- Cachear respuestas de API por tipo de contenido (
Accept: application/jsonvs.Accept: text/html) - Segmentar por preferencias de usuario (
Accept-Language: es-ESvs.Accept-Language: en-US)
Ejemplo:
URL: /api/producto/123Header: Device-Type = mobileClave de Cache: /api/producto/123:Device-Type:mobileSegmentación por cookie
Cachee fragmentos de página personalizados sin mezclar datos de sesiones diferentes.
Casos de uso:
- Fragmentos de resumen de carrito cacheados por sesión
- Recomendaciones específicas por usuario
- Variantes de tests A/B por grupo de usuario
Ejemplo:
URL: /api/carrito/resumenCookie: session_id = abc123Clave de Cache: /api/carrito/resumen:session_id:abc123Segmentación por query string
Trate parámetros de búsqueda, filtros o parámetros de campaña como criterios de diferenciación de cache.
Casos de uso:
- Resultados de búsqueda con filtros diferentes
- Listados de productos ordenados por precio, nombre o relevancia
- Parámetros de tracking de campaña (
?utm_source=email)
Ejemplo:
URL: /api/productos?categoria=zapatos&orden=precioClave de Cache: /api/productos:categoria:zapatos:orden:precioGranular Caching vs. otras estrategias de cache
| Estrategia | Pregunta que responde | Enfoque |
|---|---|---|
| Micro Caching | ¿Por cuánto tiempo cachear? | TTL corto para datos dinámicos |
| Tiered Caching | ¿En cuántas capas cachear? | Jerarquía entre puntos de presencia y origin |
| Granular Caching | ¿Qué cachear y con qué regla? | Segmentación por headers y cookies |
| Selective Caching | ¿Qué criterio usar? | Optimización de clave de cache |
Todas las cuatro estrategias son complementarias — no excluyentes.
Combinando Granular Caching con Micro Caching
Granular Caching y Micro Caching trabajan juntos para proporcionar tanto segmentación como actualización:
- Granular Caching define la clave — qué combinación de headers, cookies o query strings identifica exclusivamente esos datos
- Micro Caching define la ventana de tiempo — cuántos segundos los datos pueden reutilizarse
- Bypass selectivo garantiza el límite — operaciones críticas bypass completamente el cache
Ejemplo de flujo:
Solicitud de envío ↓[Granular Cache Key: prefijo código postal + Device-Type] ↓[Micro Cache TTL: 5 segundos] ↓Cache HIT → respuesta inmediataCache MISS → origin → popula cache → respuestaCuándo usar Granular Caching
Use Granular Caching cuando:
- La misma URL necesita respuestas diferentes para usuarios o dispositivos diferentes
- Está cacheando contenido personalizado sin contaminación de sesión
- APIs retornan datos diferentes basados en headers o parámetros de query
- Necesita implementar tests A/B con variantes cacheadas
- Fragmentos específicos de usuario pueden ser cacheados con segmentación adecuada
Evite Granular Caching cuando:
- El contenido es verdaderamente estático e idéntico para todos los usuarios
- La segmentación crearía demasiadas variantes de cache (fragmentación de cache)
- La sobrecarga de gestionar múltiples claves de cache supera el beneficio
- Los datos son altamente sensibles y nunca deben ser cacheados
Mejores prácticas para Granular Caching
1. Mantenga las claves de cache enfocadas
Incluya solo criterios de segmentación que realmente afectan la respuesta. Agregar criterios innecesarios crea fragmentación de cache y reduce el hit ratio.
2. Use ordenamiento consistente de claves
Defina un orden consistente para los componentes de la clave de cache para garantizar que la misma solicitud siempre genere la misma clave.
3. Implemente invalidación adecuada
Cuando el estado del usuario cambia (actualización de carrito, cambio de preferencia), invalide solo las claves de cache afectadas — no toda la aplicación.
4. Monitoree el cache hit ratio por variante
Siga los hit ratios para cada variante de cache para identificar super-segmentación o sub-utilización.
5. Combine con bypass selectivo
Garantice que operaciones que no deben ser cacheadas (autorización de pago, finalización de pedido) hagan bypass explícito del cache independientemente de las reglas de segmentación.
Ejemplo real: recomendaciones de productos personalizadas
Una plataforma de e-commerce usa Granular Caching para cachear recomendaciones de productos personalizadas:
Configuración de clave de cache:
URL: /api/recomendacionesHeaders: User-Segment, Accept-LanguageCookies: user_preferencesTTL: 30 segundosResultado:
- Diferentes segmentos de usuario reciben diferentes recomendaciones cacheadas
- Variantes de idioma son cacheadas separadamente
- Cambios de preferencia del usuario disparan invalidación dirigida
- La carga en el origin se reduce manteniendo la personalización
FAQ
¿Qué es Granular Caching?
Es una técnica de cache que usa Advanced Cache Keys para almacenar diferentes versiones del mismo contenido basado en información específica de la solicitud HTTP como headers, cookies o query strings.
¿Cómo difiere Granular Caching del cache básico?
El cache básico típicamente usa solo la URL como clave de cache. Granular Caching agrega criterios de segmentación para crear múltiples variantes cacheadas de la misma URL.
¿Cuándo debo usar Granular Caching?
Use cuando la misma URL necesite respuestas diferentes para usuarios, dispositivos o contextos diferentes — como contenido personalizado, layouts específicos por dispositivo o tests A/B.
¿Qué son Advanced Cache Keys?
Son identificadores de cache que incluyen información adicional de la solicitud más allá de la URL — como headers, cookies o parámetros de query string — para crear variantes segmentadas de cache.
¿Puede Granular Caching causar fragmentación de cache?
Sí, si incluye demasiados criterios de segmentación. Incluya solo criterios que realmente afectan el contenido de la respuesta.
¿Cómo funciona Granular Caching con Micro Caching?
Granular Caching define qué cachear y con qué clave; Micro Caching define por cuánto tiempo cachear. Son estrategias complementarias que trabajan juntas.
Conclusión
El Granular Caching resuelve el desafío de cachear contenido personalizado o segmentado sin contaminación de sesión. Usando Advanced Cache Keys, puede almacenar múltiples variantes de la misma URL y entregar el contenido correcto al usuario correcto.
Combinado con Micro Caching para actualización y Tiered Caching para distribución, el Granular Caching permite estrategias de cache sofisticadas que mantienen tanto performance como personalización.
Próximos pasos
Conozca la solución de Cache de Azion y vea cómo implementa Advanced Cache Keys para entrega granular de contenido.