redis之django-redis的簡單緩存使用
本文介紹了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('設(shè)置成功')
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('設(shè)置成功')
def order(request):
conn = get_redis_connection("default")
return HttpResponse('獲取成功')
全站緩存
使用中間件,經(jīng)過一系列的認證等操作,如果內(nèi)容在緩存中存在,則使用FetchFromCacheMiddleware獲取內(nèi)容并返回給用戶,
當(dāng)返回給用戶之前,判斷緩存中是否已經(jīng)存在,如果不存在則UpdateCacheMiddleware會將緩存保存至緩存,從而實現(xiàn)全站緩存
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)
配置了全站緩存,在不同的時間(一定范圍內(nèi)),上面兩個視圖返回的時間是一樣的,都是緩存時的時間
單獨視圖緩存
方式一:通過裝飾器
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 %}
緩存內(nèi)容
{% endcache %}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python實現(xiàn)船舶的MMSI的獲取(推薦)
工作中遇到一個需求,需要通過網(wǎng)站查詢船舶名稱得到MMSI碼,網(wǎng)站來自船訊網(wǎng)。這篇文章主要介紹了基于Python實現(xiàn)船舶的MMSI的獲取,需要的朋友可以參考下2019-10-10
Python 數(shù)據(jù)分析之Beautiful Soup 提取頁面信息
Beautiful Soup 提供一些簡單的、python 式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因為簡單,所以不需要多少代碼就可以寫出一個完整的應(yīng)用程序2021-10-10
Python實現(xiàn)監(jiān)控遠程主機實時數(shù)據(jù)的示例詳解
這篇文章主要為大家詳細介紹了Python如何使用Socket庫和相應(yīng)的第三方庫來監(jiān)控遠程主機的實時數(shù)據(jù),比如CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)帶寬等,感興趣的可以了解一下2023-04-04
Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式實例詳解
這篇文章主要介紹了Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式,以實例形式較為詳細的分析了Python函數(shù)參數(shù)的使用技巧,需要的朋友可以參考下2015-05-05
基于Python+Appium實現(xiàn)京東雙十一自動領(lǐng)金幣功能
一年一度的雙十一即將來臨,各大平臺都在搞活動,京東天貓忙的不易樂乎,做任務(wù)領(lǐng)金幣的過程真的好無聊,今天小編給大家分享一篇教程通關(guān)Python+Appium實現(xiàn)京東雙十一自動領(lǐng)金幣功能,需要的朋友可以參考下2019-10-10

