Maison  >  Article  >  base de données  >  Utilisation de Django-redis de Redis

Utilisation de Django-redis de Redis

尚
avant
2020-05-20 09:02:502587parcourir

Utilisation de Django-redis de Redis

Pool de connexions personnalisé

Cette méthode est la même que l'opération normale de fichier py redis, le code est le suivant

vues. py

  import redis
  from django.shortcuts import render,HttpResponse
  from utils.redis_pool import POOL
   
  def index(request):
      conn = redis.Redis(connection_pool=POOL)
      conn.hset('kkk','age',18)
   
      return HttpResponse('设置成功')
 def order(request):
     conn = redis.Redis(connection_pool=POOL)
     conn.hget('kkk','age')
  
     return HttpResponse('获取成功')

Opération redis via des composants tiers

Installation

pip3 install django-redis

Configuration :

settings.py

# redis配置
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}
            # "PASSWORD": "密码",
        }
    }
}

Utiliser :

views.py

import redis
from django.shortcuts import render,HttpResponse
from django_redis import get_redis_connection
 
 
def index(request):
    conn = get_redis_connection("default")
    return HttpResponse('设置成功')
def order(request):
    conn = get_redis_connection("default")
    return HttpResponse('获取成功')
from rest_framework.views import APIView
from rest_framework.response import Response
 
from django.core.cache import cache
 
class OrderView(APIView):
    def get(self,request,*args,**kwargs):
        # conn = get_redis_connection('default')
        cache.set('a','b')
        print(cache.get('a'))
        return Response('..')

Cache complet du site

Utiliser le middleware, après une série d'authentifications et d'autres opérations, si le contenu existe dans le cache, utilisez FetchFromCacheMiddleware Récupérez le contenu et renvoyez-le à l'utilisateur
Avant de le renvoyer à l'utilisateur, déterminez s'il existe déjà dans le cache. S'il n'existe pas, UpdateCacheMiddleware enregistrera ainsi le cache dans le cache. réaliser la mise en cache du site complet

MIDDLEWARE = [
        'django.middleware.cache.UpdateCacheMiddleware',
        # 其他中间件...
        'django.middleware.cache.FetchFromCacheMiddleware',
    ]

Un endroit en haut, celui du bas

views.py

from django.shortcuts import render,HttpResponse
import time
 
 
def index(request):
    ctime = str(time.time())
    return HttpResponse(ctime)
 
def order(request):
    ctime = str(time.time())
    return HttpResponse(ctime)

est configuré avec un cache du site complet à différents endroits. times (dans une certaine plage), l'heure renvoyée par les deux vues ci-dessus est la même, sont l'heure de la mise en cache

Mise en cache des vues individuelles

Première méthode : via le décorateur

from django.views.decorators.cache import cache_page
 
        @cache_page(60 * 15)
        def my_view(request):
            ...

Méthode deux : via l'url

from django.views.decorators.cache import cache_page
 
        urlpatterns = [
            url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
        ]

Mise en cache partielle des pages

1. Introduire TemplateTag

{% load cache %}

2. 🎜>

{% cache 5000 缓存的key %}
       缓存内容
{% endcache %}

Pour plus de connaissances sur Redis, veuillez prêter attention au

Tutoriel d'introduction à Redis

Colonne.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer