Maison  >  Article  >  développement back-end  >  Explication détaillée de l'utilisation du serveur de cache Redis dans Django

Explication détaillée de l'utilisation du serveur de cache Redis dans Django

巴扎黑
巴扎黑original
2017-08-17 11:32:381903parcourir

Je pense que tout le monde connaît Redis. Comme Memcached, c'est une base de données clé-valeur hautes performances. Quant à ce qu'est un serveur de cache, Du Niang a une introduction très claire, je ne le présenterai donc pas un par un. ici.

Alors, dans quelles circonstances utilisons-nous habituellement des serveurs de cache ? Ce n'est pas nécessaire dans toutes les situations. De manière générale, ce n'est que lorsqu'un champ doit être lu fréquemment qu'il est nécessaire de mettre ce champ sur le serveur de cache. Et comme les bases de données clé-valeur ne stockent généralement que des données très simples, ainsi soit-il. soyez prudent lors de la sélection des objets à enregistrer.

Permettez-moi de vous présenter comment configurer et utiliser la base de données redis dans Django. Tout d'abord, installez redis. Exécutez la commande suivante dans Ubuntu :

#Installer le serveur Redis

sudo apt-get install redis-server
Ensuite, pour utiliser redis dans Django, vous devez également installer le plug-in redis pour Django :

pip install django-redis
Il s'agit d'un projet open source, l'adresse github est https://github.com /niwibe/django-redis, merci à l'auteur.

Ensuite, il est désormais configuré dans les paramètres de Django.

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
En fait, vous n'avez besoin que de ces éléments dans les CACHES. Les trois phrases suivantes ne sont pas nécessaires, mais elles sont nécessaires dans mes exemples ultérieurs, je les ai donc configurées ici.

Bon, maintenant que la connexion et la configuration sont terminées, comment l'utiliser dans le projet ? Regardons l'exemple suivant.

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)
Les deux méthodes ci-dessus peuvent être utilisées pour lire redis. Il vous suffit de transmettre les champs obligatoires en tant que paramètres dans la méthode.

Alors qu'en est-il de Memcached mentionné précédemment ? En fait, c'est la même configuration :

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
Bien entendu, l'utilisation est la même que mon exemple ci-dessus. En fait, pour les serveurs de cache comme Redis, la configuration est très simple et l'utilisation spécifique n'est pas difficile. Il existe de nombreux exemples simples et clairs sur le site officiel pour notre référence. Il n'y a qu'une seule chose à noter, c'est quoi. utiliser Enregistrer ce type d'informations dans Redis est ce dont nous devons vraiment nous soucier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn