因爲Django是動態網站,全部每次請求均會去數據進行相應的操做,當程序訪問量大時,耗時必然會更加明顯,最簡單解決方式是使用:緩存,緩存將一個某個views的返回值保存至內存或者Redis中,5分鐘內再有人來訪問時,則再也不去執行view中的操做,而是直接從內存或者Redis中以前緩存的內容拿到,並返回。python
1
2
3
4
5
|
from
app01
import
views
urlpatterns
=
[
url(r
'^admin/'
, admin.site.urls),
url(r
'^cache/$'
, views.cache),
]
|
1
2
3
4
|
import
time
def
cache(request):
current
= str(
time.time())
return
HttpResponse(current)
|
1
2
3
4
5
6
7
8
9
10
|
CACHES
=
{
'default'
: {
'BACKEND'
:
'django.core.cache.backends.filebased.FileBasedCache'
,
#文件方式
'LOCATION'
: os.path.join(BASE_DIR,
'cache'
),
'TIMEOUT'
:
600
,
'OPTIONS'
: {
'MAX_ENTRIES'
:
1000
}
}
}
|
1
2
3
4
5
6
|
from
django.views.decorators.cache
import
cache_page
@cache_page
(
60
*
15
)
#緩存15分鐘
def
cache(request):
current
=
str
(time.time())
return
HttpResponse(current)
|
時間戳只刷新了一次就被緩存了起來,再刷新就不改變了,讀取的是cache的字符串。同時,生成了2個靜態緩存文件:redis
所生成的靜態字符串,能夠存放在文件,內存,數據庫,或redis、memcache。
數據庫
英文連接:https://docs.djangoproject.com/en/1.9/topics/cache/django
中文鏈接:http://djangobook.py3k.cn/2.0/chapter15/ 緩存