>  기사  >  데이터 베이스  >  redis의 django-redis 사용

redis의 django-redis 사용

尚
앞으로
2020-05-20 09:02:502587검색

redis의 django-redis 사용

Custom 연결 풀

이 방법은 일반 py 파일로 redis를 운영하는 것과 동일합니다. 코드는 다음과 같습니다

views.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('获取成功')

타사 구성 요소를 통한 redis 운영

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": "密码",
        }
    }
}

사용:

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('..')

전체 사이트 캐시

미들웨어 사용, 일련의 인증 및 기타 작업 후 콘텐츠가 캐시에 있는 경우 FetchFromCacheMiddleware 사용 콘텐츠를 획득하여 사용자에게 반환하려면
사용자에게 반환하기 전에 해당 콘텐츠가 캐시에 이미 존재하는지 확인하세요. 존재하지 않으면 UpdateCacheMiddleware가 캐시를 캐시에 저장하여 전체 사이트 캐싱을 실현합니다

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

하나는 상단에, 하나는 하단

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)

은 서로 다른 시간(특정 범위 내)에서 반환되는 시간은 동일하며 둘 다 동일합니다. 그 중 캐시된 시간

개별 뷰 캐싱

방법 1: Pass Decorator

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

방법 2: url

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

1을 통한 부분 페이지 캐싱

{% load cache %}

2을 사용하세요. 더 redis 지식이 있으신 분들은

redis 입문 튜토리얼

칼럼을 주목해주세요.

위 내용은 redis의 django-redis 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제