El caching es una de las herramientas más poderosas para mejorar el rendimiento de una aplicación Django. Aprender a usarlo correctamente puede reducir los tiempos de respuesta drásticamente.
Niveles de caching en Django
- Low-level cache API: Para objetos individuales
- Template fragment caching: Para partes específicas del HTML
- View-level caching: Para respuestas completas
- QuerySet caching: Para resultados de base de datos
from django.core.cache import cache
def get_dashboard_data(user_id):
cache_key = f'dashboard_{user_id}'
data = cache.get(cache_key)
if data is None:
data = expensive_db_query(user_id)
cache.set(cache_key, data, timeout=300)
return data
Redis como backend de cache
Redis es la opción más popular para caching en Django, ofreciendo velocidad inigualable y funcionalidades adicionales como pub/sub.
"Los dos problemas difíciles en computación son: invalidar caché y nombrar cosas."