Heim > Artikel > Backend-Entwicklung > Django verwendet den Redis-Cache-Server
Ich glaube, jeder kennt Redis, es handelt sich um eine leistungsstarke Schlüsselwertdatenbank. Du Niang hat eine sehr klare Einführung, daher werde ich es nicht einzeln vorstellen Hier.
Unter welchen Umständen verwenden wir normalerweise Cache-Server? Es ist nicht in allen Situationen erforderlich, ein Feld nur dann auf dem Cache-Server abzulegen, wenn es häufig gelesen werden muss. Und da Schlüsselwertdatenbanken im Allgemeinen nur sehr einfache Daten speichern Gehen Sie bei der Auswahl der zu speichernden Objekte vorsichtig vor.
Lassen Sie mich vorstellen, wie Sie die Redis-Datenbank in Django konfigurieren und verwenden. Führen Sie zunächst den folgenden Befehl in Ubuntu aus:
#Install Redis server
sudo apt-get install redis-server
Um dann Redis in Django verwenden zu können, müssen Sie auch das Redis für Django-Plug-in installieren:
pip install django-redis
Dies ist ein Open-Source-Projekt, die Github-Adresse lautet https://github.com/niwibe/django-redis, vielen Dank an den Autor.
Dann ist es jetzt in den Django-Einstellungen konfiguriert.
CACHES = { 'default': { 'BACKEND': 'redis_cache.cache.RedisCache', 'LOCATION': '127.0.0.1:6379', "OPTIONS": { "CLIENT_CLASS": "redis_cache.client.DefaultClient", }, }, } REDIS_TIMEOUT=7*24*60*60 CUBES_REDIS_TIMEOUT=60*60 NEVER_REDIS_TIMEOUT=365*24*60*60
Tatsächlich benötigen Sie diese Elemente nur in CACHES. Die nächsten drei Sätze werden nicht benötigt, aber sie werden nur in meinen späteren Beispielen benötigt. Gebraucht, ich habe es hier konfiguriert.
Okay, jetzt, da die Verbindung und Konfiguration abgeschlossen sind, wie wird es im Projekt verwendet? Schauen wir uns das folgende Beispiel an.
from django.conf import settings from django.core.cache import cache #read cache user id def read_from_cache(self, user_name): key = 'user_id_of_'+user_name value = cache.get(key) if value == None: data = None else: data = json.loads(value) return data #write cache user id def write_to_cache(self, user_name): key = 'user_id_of_'+user_name cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT)
Mit den beiden oben genannten Methoden können Sie den Lesevorgang von Redis realisieren. Sie müssen nur die erforderlichen Felder als Parameter übergeben in der Methode.
Was ist also mit dem zuvor erwähnten Memcached? Tatsächlich handelt es sich um die gleiche Konfiguration:
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } }
Natürlich ist die Verwendung die gleiche wie in meinem Beispiel oben. Tatsächlich ist die Konfiguration für Cache-Server wie Redis sehr einfach und die spezifische Verwendung ist nicht schwierig. Auf der offiziellen Website gibt es nur eines, auf das wir achten sollten , was zu verwenden ist Das Speichern dieser Art von Informationen in Redis ist das, worüber wir uns wirklich kümmern müssen.