redis의 django-redis 사용

풀어 주다: 2020-05-20 09:02:50
앞으로
2599명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿