1.Django中操作redis
安裝django-redis模塊
1
|
pip3 install django
-
redis
|
在setting配置:
1
2
3
4
5
6
7
8
9
10
11
12
|
# reids_configure
CACHES
=
{
"default"
:{
"BACKEND"
:
"django_redis.cache.RedisCache"
,
"LOCATION"
:
"redis://182.254.210.59:6379"
,
# 連接地址
"OPTIONS"
: {
"CLIENT_CALSS"
:
"django_redis.client.DefaultClient"
,
"CONNECTION_POOL_KWARGS"
: {
"max_connections"
:
1000
},
"PASSWORD"
:
"123123"
,
# 連接密碼
}
}
}
|
在views中調用
1
2
3
4
5
6
7
8
9
10
11
|
def
index(request):
conn
=
get_redis_connection(
'default'
)
conn.hset(
'dic'
,
'age'
,
22
)
return
HttpResponse(
'設置成功'
)
def
order(request):
conn
=
get_redis_connection(
'default'
)
val
=
conn.hget(
'dic'
,
'age'
)
val
=
val.decode(
'utf-8'
)
return
HttpResponse(
'取值成功 '
+
val)
|
2.全站緩存
全站緩存要用到中間件了,在settings中間件配置的 MIDDLEWARE 模塊中,加兩條配置
1
2
3
4
5
6
|
'django.middleware.cache.UpdateCacheMiddleware'
,
# 加到中間件的最上面
'django.middleware.cache.FetchFromCacheMiddleware'
,
# 加到中間件的最下面
附加:
CACHE_MIDDLEWARE_ALIAS
=
""
# 設置緩存的別名
CACHE_MIDDLEWARE_SECONDS
=
""
# 設置緩存的超時時間
CACHE_MIDDLEWARE_KEY_PREFIX
=
""
|
全站緩存指的是每次在請求過來的時候先經過中間件,然后到緩存,如果緩存中沒有的話去就去數據庫中找,在返回數據的時候順便放到緩存中一份
3.單個視圖緩存
方式一: 給想要被緩存的單個視圖加裝飾器
1
2
3
4
5
|
from
django.views.decorators.cache
import
cache_page
# 在views中調用
@cache_page
(
60
*
15
)
def
index(request):
...
|
方式二:在配置url的同時直接指定緩存
1
2
3
4
5
|
from
django.views.decorators.cache
import
cache_page
urlpatterns
=
[
url(r
'^foo/([0-9]{1,2})/$'
, cache_page(
60
*
15
)(my_view)),
]
|
4.局部視圖緩存
4.1 引入TemplateTag
1
|
{
%
load cache
%
}
|
4.2 使用緩存
1
2
3
4
5
|
{
%
cache
5000
緩存key
%
}
# 指5000秒 緩存key 指緩存存放的地方
<div><
/
div>
# 要被緩存的單獨一塊內容
{
%
endcache
%
}
|