Heim > Datenbank > Redis > Verwendung von Django-Redis von Redis

Verwendung von Django-Redis von Redis

Freigeben: 2020-05-20 09:02:50
nach vorne
2648 Leute haben es durchsucht

Verwendung von Django-Redis von Redis

Benutzerdefinierter Verbindungspool

Diese Methode ist dieselbe wie die normale Py-Dateioperation von Redis, der Code lautet wie folgt

Ansichten. 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('获取成功')
Nach dem Login kopieren

Operation redis durch Komponenten von Drittanbietern

Installation

pip3 install django-redis
Nach dem Login kopieren

Konfiguration:

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": "密码",
        }
    }
}
Nach dem Login kopieren

Verwenden Sie:

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('获取成功')
Nach dem Login kopieren
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('..')
Nach dem Login kopieren

Vollständiger Site-Cache

Verwenden Sie Middleware nach einer Reihe von Authentifizierungs- und anderen Vorgängen, wenn der Inhalt vorhanden ist Verwenden Sie im Cache FetchFromCacheMiddleware, um den Inhalt abzurufen und an den Benutzer zurückzugeben. Stellen Sie vor der Rückgabe an den Benutzer fest, ob er bereits im Cache vorhanden ist. Wenn er nicht vorhanden ist, speichert UpdateCacheMiddleware den Cache Vollständiges Site-Caching realisieren.

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

Ein Ort oben, der untere

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)
Nach dem Login kopieren

ist mit Full-Site-Cache konfiguriert Zeiten (innerhalb eines bestimmten Bereichs), die von den beiden oben genannten Ansichten zurückgegeben werden, sind die Zeit beim Caching

Einzelansicht-Caching

Methode eins: über den Dekorator

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

Methode zwei: über URL

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

Partielles Seiten-Caching

1. TemplateTag einführen

{% load cache %}
Nach dem Login kopieren

2. Cache verwenden


{% cache 5000 缓存的key %}
       缓存内容
{% endcache %}
Nach dem Login kopieren
Weitere Redis-Kenntnisse finden Sie in der Spalte

Redis-Einführungs-Tutorial.

Das obige ist der detaillierte Inhalt vonVerwendung von Django-Redis von Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage