Heim  >  Artikel  >  Backend-Entwicklung  >  Django verwendet den Redis-Cache-Server

Django verwendet den Redis-Cache-Server

高洛峰
高洛峰Original
2016-10-17 13:51:101441Durchsuche

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.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn