Maison > Article > base de données > 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 %}
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!