¿Cómo usar memcached en Django?

Oct 12 2020

He visto todos los problemas al usar Memcached en proyectos de Django, que se considera

El tipo de caché más rápido y eficiente compatible de forma nativa con Django

Por instancias,

  • ¿Por qué Memcache no funciona en mi Django?
  • ¿Cómo configurar Memcache para Django en Google Cloud AppEngine?
  • Django no usa el framework memcached
  • memcache en django no funciona
  • ¿Cómo usar memcached en el proyecto django?
  • ¿Cómo se confirma que django está usando memcached?
  • Configurando memcached con django
  • ¿Qué pasos se necesitan para implementar Memcached en una aplicación Django?
  • ¿Cómo usar memcached en el proyecto django?

Entonces, ¿cómo podemos usarlo?

Respuestas

1 TiagoMartinsPeres李大仁 Oct 12 2020 at 11:53

Esta respuesta explica cómo instalar Memcached en Windows 10 y cómo integrarlo con Django a través de un cliente específico. Fue validado usando Memcached 1.4.4, Python 2.7 y Django 1.11.

  1. En su proyecto Django, en settings.py, agregue el siguiente código en la parte inferior del archivo

    SESSIONS_ENGINE='django.contrib.sessions.backends.cache'
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
    
  2. Instale el cliente memcached para Python con su entorno virtual activo ( python-memcached )

    pip install python-memcached
    
  3. Descargue Memcached usando uno de los siguientes enlaces de descarga y extráigalo a una carpeta en particular

  • http://downloads.northscale.com/memcached-win32-1.4.4-14.zip
  • http://downloads.northscale.com/memcached-win64-1.4.4-14.zip

  1. Abra la ubicación de esa carpeta en la Terminal o PowerShell y ejecute

    .\memcached.exe -h
    

deberías conseguir algo como esto

  1. Ejecute el siguiente comando (-m es para la cantidad de memoria que desea dedicar y -vvv es para extremadamente detallado)

    .\memcached.exe -m 512 -vvv
    

  1. En la vista que desea usar el caché, especifíquelo en urls.py como

    from django.conf.urls import include, url
    from django.views.decorators.cache import cache_page
    
    from .views import IndexView
    
    urlpatterns = [
        url(r'^$', cache_page(60*60)(IndexView.as_view()), name="index"),
    ]
    
  2. Vaya al proyecto Django, inicie el servidor y debería obtener resultados mucho mejores en su carga de tiempo.