Django--緩存


由於Django是動態網站,所有每次請求均會去數據進行相應的操作,當程序訪問量大時,耗時必然會更加明顯,最簡單解決方式是使用:緩存,緩存將一個某個views的返回值保存至內存或者Redis中,5分鍾內再有人來訪問時,則不再去執行view中的操作,而是直接從內存或者Redis中之前緩存的內容拿到,並返回。

1、准備一個動態網站

urls.py
1
2
3
4
5
from app01 import views
urlpatterns = [
     url(r '^admin/' , admin.site.urls),
     url(r '^cache/$' , views.cache),
]
app01/views.py
1
2
3
4
import time
def cache(request):
     current = str( time.time())
     return HttpResponse(current)


2、創建緩存目錄


3、配置文件

settings.py
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
         }
     }
}


4、應用

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)


5、驗證

時間戳只刷新了一次就被緩存了起來,再刷新就不改變了,讀取的是cache的字符串。同時,生成了2個靜態緩存文件:



6、緩存介質​

所生成的靜態字符串,可以存放在文件,內存,數據庫,或redis、memcache。

英文鏈接:https://docs.djangoproject.com/en/1.9/topics/cache/

中文連接:http://djangobook.py3k.cn/2.0/chapter15/
















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM