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."