Selective Caching determina qué debe ser cacheado basándose en criterios específicos — optimizando cache keys para asegurar que el contenido correcto sea cacheado con las reglas adecuadas para entrega inteligente de contenido.
¿Qué es Selective Caching?
Selective Caching — también llamado advanced cache o granular cache — es la capacidad de definir qué debe ser cacheado basándose en información específica de la solicitud HTTP.
A diferencia del caching “todo o nada”, Selective Caching usa Advanced Cache Keys para determinar:
- Qué contenido debe ser cacheado
- Con qué criterios la cache key debe ser construida
- Cuándo el contenido debe ignorar el cache completamente
Esta técnica responde a una pregunta específica: “¿Con qué criterios de selección debo cachear este contenido?”
Cómo funciona Selective Caching
Selective Caching opera aplicando reglas que determinan el comportamiento del cache para cada solicitud:
1. Verificación de elegibilidad para cache ¿Debe esta solicitud ser cacheada? Algunos contenidos (autorización de pagos, finalización de pedidos) nunca deben ser cacheados.
2. Construcción de la cache key ¿Qué combinación de URL, headers, cookies y query strings identifica exclusivamente este contenido?
3. Asignación de TTL ¿Por cuánto tiempo debe ser cacheado este contenido? Diferentes tipos de contenido necesitan diferentes duraciones de cache.
4. Reglas de bypass ¿Cuándo debe el cache ser explícitamente ignorado independientemente de otras reglas?
Selective Caching vs. otras estrategias de caching
| Estrategia | Pregunta que responde | Enfoque |
|---|---|---|
| Micro Caching | ¿Por cuánto tiempo cachear? | TTL corto para datos dinámicos |
| Tiered Caching | ¿Cuántas capas cachear? | Jerarquía entre puntos de presencia y origen |
| Granular Caching | ¿Qué cachear y con qué regla? | Segmentación por headers y cookies |
| Selective Caching | ¿Qué criterios usar? | Optimización de cache key |
Las cuatro estrategias son complementarias — no mutuamente excluyentes.
Optimización de cache keys
¿Qué es una cache key?
Una cache key es un identificador único que determina si existe una respuesta cacheada para una solicitud específica. La cache key se construye a partir de:
- URL path — el identificador básico
- Query strings — parámetros que afectan el contenido
- Headers — tipo de dispositivo, idioma, encoding
- Cookies — identificadores de sesión o preferencias
Optimizando cache keys
Muy amplia — Cache key incluye solo URL
- Resultado: Mismo contenido para todos los usuarios, potencial contaminación de sesión
Muy específica — Cache key incluye demasiadas variables
- Resultado: Fragmentación de cache, bajo hit ratio, almacenamiento desperdiciado
Óptima — Cache key incluye solo variables que afectan el contenido
- Resultado: Alto hit ratio, personalización correcta, almacenamiento eficiente
Reglas de Selective Caching
Cache por tipo de contenido
Diferentes tipos de contenido tienen diferentes requisitos de caching:
| Tipo de Contenido | Comportamiento del Cache | TTL Típico |
|---|---|---|
| Assets estáticos (imágenes, CSS, JS) | Siempre cachear | Días a semanas |
| Catálogo de productos | Cachear con invalidación | Horas |
| Respuestas de API | Selectivo por endpoint | Segundos a minutos |
| Datos específicos de usuario | Cachear con clave de sesión | Segundos |
| Operaciones de pago | Nunca cachear | — |
Cache por endpoint
Aplica reglas diferentes para diferentes endpoints de API:
/api/products → Cachear con TTL de 5 minutos/api/cart → Cachear con session key, TTL de 30 segundos/api/payment/authorize → Bypass del cache completamente/api/recommendations → Cachear por segmento de usuario, TTL de 1 minutoCache por segmento de usuario
Diferentes segmentos de usuarios pueden recibir diferentes contenidos cacheados:
- Usuarios anónimos — Cache compartido, TTL más largo
- Usuarios autenticados — Cache específico de sesión, TTL más corto
- Usuarios premium — Cache personalizado, TTL mínimo
Cuándo usar Selective Caching
Usa Selective Caching cuando:
- Diferentes endpoints necesitan diferentes comportamientos de cache
- El contenido varía por segmento de usuario, dispositivo o ubicación
- Necesitas control detallado sobre qué se cachea
- Algunas operaciones nunca deben ser cacheadas
- Estás implementando entrega inteligente de contenido
Evita Selective Caching cuando:
- Todo el contenido es estático e idéntico para todos los usuarios
- Las reglas de cache serían demasiado complejas de mantener
- El overhead de evaluación de reglas supera el beneficio
Combinando Selective Caching con otras estrategias
Selective Caching funciona mejor cuando se combina con otras estrategias de caching:
Con Micro Caching: Selective Caching determina qué cachear; Micro Caching determina por cuánto tiempo.
Con Tiered Caching: Selective Caching determina las reglas de cache; Tiered Caching determina la distribución del cache.
Con Granular Caching: Selective Caching determina los criterios de selección; Granular Caching implementa la segmentación.
Mejores prácticas para Selective Caching
1. Define reglas claras de elegibilidad para cache
Documenta explícitamente qué contenido debe y no debe ser cacheado. En caso de duda, comienza con reglas conservadoras y expande.
2. Usa construcción consistente de cache keys
Define un orden estándar para los componentes de la cache key para garantizar consistencia en toda tu infraestructura.
3. Implementa reglas explícitas de bypass
Nunca dependas de comportamiento implícito para operaciones críticas. Define explícitamente reglas de bypass para pagos, autenticación y otras operaciones sensibles.
4. Monitorea la efectividad del cache
Rastrea los cache hit ratios por regla para identificar situaciones de over-caching o under-caching.
5. Planifica para invalidación
Define cómo el cache será invalidado cuando el contenido cambie — purge basado en clave, expiración basada en tiempo o invalidación orientada a eventos.
Ejemplo real: caching de API de e-commerce
Una plataforma de e-commerce usa Selective Caching para su API:
Reglas de cache:
GET /api/products/* → Cachear 5 minutos, clave por URLGET /api/products/{id} → Cachear 2 minutos, clave por URL + Accept-LanguageGET /api/cart/* → Cachear 30 segundos, clave por session_idGET /api/recommendations/* → Cachear 1 minuto, clave por user_segmentPOST /api/cart/* → Bypass del cachePOST /api/payment/* → Bypass del cachePOST /api/orders/* → Bypass del cacheResultado:
- Navegación de productos es rápida y escalable
- Operaciones de carrito permanecen responsivas
- Operaciones de pago nunca son cacheadas
- Recomendaciones son personalizadas pero eficientes
FAQ
¿Qué es Selective Caching?
Es una técnica de caching que determina qué debe ser cacheado basándose en criterios específicos, optimizando cache keys para entrega inteligente de contenido.
¿Cómo es Selective Caching diferente del caching básico?
El caching básico típicamente cachea todo o nada. Selective Caching aplica reglas para determinar qué se cachea, con qué clave y por cuánto tiempo.
¿Cuál es la diferencia entre Selective Caching y Granular Caching?
Selective Caching se enfoca en determinar qué criterios usar para decisiones de caching. Granular Caching se enfoca en implementar la segmentación con Advanced Cache Keys. Trabajan juntos.
¿Cuándo debo usar Selective Caching?
Úsalo cuando diferentes tipos de contenido o endpoints necesitan diferentes comportamientos de cache, o cuando algunas operaciones nunca deben ser cacheadas.
¿Cómo se relaciona Selective Caching con cache bypass?
Selective Caching incluye reglas explícitas de bypass que aseguran que ciertas operaciones (como autorización de pagos) nunca pasen por el cache, independientemente de otras configuraciones.
¿Puede Selective Caching mejorar el cache hit ratio?
Sí, al asegurar que solo el contenido apropiado sea cacheado con claves óptimas, Selective Caching puede mejorar significativamente el cache hit ratio comparado con políticas de caching genéricas.
Conclusión
Selective Caching proporciona la capa de inteligencia para tu estrategia de caching. Al determinar qué debe ser cacheado y con qué criterios, asegura que el cache sea usado efectivamente sin comprometer la integridad de los datos o la experiencia del usuario.
Combinado con Micro Caching para frescura, Tiered Caching para distribución y Granular Caching para segmentación, Selective Caching permite estrategias de caching sofisticadas que entregan el contenido correcto al usuario correcto en el momento correcto.
Próximos pasos
Conoce la solución de Cache de Azion y ve cómo implementa Selective Caching para entrega inteligente de contenido.