Come usare memcached in Django?

Oct 12 2020

Ho visto tutti i problemi nell'uso di Memcached nei progetti Django, che è considerato

Il tipo di cache più veloce ed efficiente supportato nativamente da Django

Per esempio,

  • Perché memcache non funziona nel mio Django?
  • Come configurare Memcache per Django su Google cloud AppEngine?
  • Django non usa il framework memcached
  • memcache su django non funziona
  • Come usare memcached nel progetto django?
  • Come confermi che Django stia usando memcached?
  • Configurazione di memcached con django
  • Quali passaggi sono necessari per implementare memcached in un'applicazione Django?
  • Come usare memcached nel progetto django?

Allora, come possiamo usarlo?

Risposte

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

Questa risposta spiega come installare Memcached su Windows 10 e come integrarlo con Django tramite un client specifico. È stato convalidato utilizzando Memcached 1.4.4, Python 2.7 e Django 1.11.

  1. Nel tuo progetto Django, in settings.py, aggiungi il seguente codice in fondo al file

    SESSIONS_ENGINE='django.contrib.sessions.backends.cache'
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
    
  2. Installa il client memcached per Python con il tuo ambiente virtuale attivo ( python-memcached )

    pip install python-memcached
    
  3. Scarica Memcached utilizzando uno dei seguenti link per il download ed estrailo in una cartella particolare

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

  1. Apri la posizione della cartella nel Terminale o PowerShell ed esegui

    .\memcached.exe -h
    

dovresti ottenere qualcosa di simile

  1. Esegui il seguente comando (-m è per la quantità di memoria che vuoi dedicare e -vvv è per estremamente dettagliato)

    .\memcached.exe -m 512 -vvv
    

  1. Nella vista in cui vuoi usare la cache, specificala in urls.py come

    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. Vai al progetto Django, avvia il server e dovresti ottenere risultati molto migliori nel tuo Time load.