redis之django-redis的簡單快取使用
阿新 • • 發佈:2020-01-09
本文介紹了redis之django-redis的簡單快取使用,分享給大家,具體如下:
自定義連線池
這種方式跟普通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
安裝
pip3 install django-redis
配置
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('獲取成功')
全站快取
使用中介軟體,經過一系列的認證等操作,如果內容在快取中存在,則使用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)
配置了全站快取,在不同的時間(一定範圍內),上面兩個檢視返回的時間是一樣的,都是快取時的時間
單獨檢視快取
方式一:通過裝飾器
from django.views.decorators.cache import cache_page @cache_page(60 * 15) def my_view(request): ...
方式二:通過url
from django.views.decorators.cache import cache_page urlpatterns = [ url(r'^foo/([0-9]{1,2})/$',cache_page(60 * 15)(my_view)),]
區域性頁面快取
1. 引入TemplateTag
{% load cache %}
2. 使用快取
{% cache 5000 快取的key %} 快取內容 {% endcache %}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。