Comment utiliser Memcached dans Django?

Oct 12 2020

J'ai vu partout des problèmes d'utilisation de Memcached dans des projets Django qui sont considérés comme

Le type de cache le plus rapide et le plus efficace pris en charge nativement par Django

Par exemple,

  • Pourquoi Memcache ne fonctionne-t-il pas dans mon Django?
  • Comment configurer Memcache pour Django sur Google Cloud AppEngine?
  • Django n'utilise pas le framework Memcached
  • memcache sur django ne fonctionne pas
  • Comment utiliser Memcached dans le projet Django?
  • Comment confirmez-vous que Django utilise Memcached?
  • Configurer Memcached avec Django
  • Quelles étapes sont nécessaires pour implémenter Memcached dans une application Django?
  • Comment utiliser Memcached dans le projet Django?

Alors, comment pouvons-nous alors l'utiliser?

Réponses

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

Cette réponse explique comment installer Memcached sur Windows 10 et comment l'intégrer à Django via un client spécifique. Il a été validé avec Memcached 1.4.4, Python 2.7 et Django 1.11.

  1. Dans votre projet Django, sous settings.py, ajoutez le code suivant en bas du fichier

    SESSIONS_ENGINE='django.contrib.sessions.backends.cache'
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
    
  2. Installez le client memcached pour Python avec votre environnement virtuel actif ( python-memcached )

    pip install python-memcached
    
  3. Téléchargez Memcached en utilisant l'un des liens de téléchargement suivants et extrayez-le dans un dossier particulier

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

  1. Ouvrez cet emplacement de dossier dans le terminal ou PowerShell et exécutez

    .\memcached.exe -h
    

tu devrais obtenir quelque chose comme ça

  1. Exécutez la commande suivante (-m correspond à la quantité de mémoire que vous souhaitez dédier et -vvv correspond à l'extrême verbosité)

    .\memcached.exe -m 512 -vvv
    

  1. Dans la vue que vous souhaitez utiliser le cache, spécifiez-le dans urls.py comme

    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. Accédez au projet Django, démarrez le serveur et vous devriez obtenir de bien meilleurs résultats dans votre charge de temps.