Como usar memcached no Django?

Oct 12 2020

Já vi muitos problemas usando Memcached em projetos Django, que é considerado

O tipo de cache mais rápido e eficiente suportado nativamente pelo Django

Por exemplo,

  • Por que o memcache não funciona no meu Django?
  • Como configurar o Memcache para Django no Google cloud AppEngine?
  • Django não usa framework memcached
  • memcache no django não está funcionando
  • Como usar o memcached no projeto django?
  • Como você confirma que o Django está usando o memcached?
  • Configurando memcached com django
  • Quais etapas são necessárias para implementar memcached em um aplicativo Django?
  • Como usar o memcached no projeto django?

Então, como podemos usá-lo?

Respostas

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

Esta resposta explica como instalar o Memcached no Windows 10 e como integrá-lo ao Django por meio de um cliente específico. Ele foi validado usando Memcached 1.4.4, Python 2.7 e Django 1.11.

  1. Em seu projeto Django, em settings.py, adicione o seguinte código na parte inferior do arquivo

    SESSIONS_ENGINE='django.contrib.sessions.backends.cache'
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
    
  2. Instale o cliente memcached para Python com seu ambiente virtual ativo ( python-memcached )

    pip install python-memcached
    
  3. Baixe o Memcached usando um dos seguintes links de download e extraia-o para uma pasta específica

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

  1. Abra esse local de pasta no Terminal ou PowerShell e execute

    .\memcached.exe -h
    

você deveria conseguir algo assim

  1. Execute o seguinte comando (-m é para a quantidade de memória que você deseja dedicar e -vvv é para extrema verbosidade)

    .\memcached.exe -m 512 -vvv
    

  1. Na visão que você deseja usar o cache, especifique-o em 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. Vá para o projeto Django, inicie o servidor e você deve obter resultados muito melhores em seu carregamento de tempo.