1. 程式人生 > >Django緩存機制

Django緩存機制

update 頁面 html nds font 必須 request tor templet


django的緩存

在動態網站中,用戶所有的請求,服務器都會去數據庫中進行相應的增,刪,查,改,渲染模板,執行業務邏輯,最後生成用戶看到的頁面.

當一個網站的用戶訪問量很大的時候,每一次的的後臺操作,都會消耗很多的服務端資源,所以必須使用緩存來減輕後端服務器的壓力.

緩存是將一些常用的數據保存內存或者memcache中,在一定的時間內有人來訪問這些數據時,則不再去執行數據庫及渲染等操作,而是直接從內存或memcache的緩存中去取得數據,然後返回給用戶.

https://www.cnblogs.com/liuqingzheng/articles/9803351.html

Django中的6種緩存方式

  • 開發調試緩存
  • 內存緩存
  • 文件緩存
  • 數據庫緩存
  • Memcache緩存(使用python-memcached模塊)
  • Memcache緩存(使用pylibmc模塊)

經常使用的有文件緩存和Mencache,redis緩存

1.全站緩存:

在setting中配置:
兩個中間件:
MIDDLEWARE = [
# 放頁面的時候,應該放在最前面,放緩存response
‘django.middleware.cache.UpdateCacheMiddleware‘,
   ‘django.middleware.common.CommonMiddleware‘,
‘django.middleware.cache.FetchFromCacheMiddleware‘,
# 取頁面放在這個位置,最後,取緩存,request
]

# 以秒為單位緩存時間
CACHE_MIDDLEWARE_SECONDS = 10


# 這個配置是:把緩存放在文件指定的文件裏面
CACHES = {
‘default‘: {
‘BACKEND‘: ‘django.core.cache.backends.filebased.FileBasedCache‘, # 指定緩存使用的引擎
‘LOCATION‘: ‘C:\Django_study\catch‘, # 指定緩存的路徑
‘TIMEOUT‘: 300, # 緩存超時時間(默認為300秒,None表示永不過期)
‘OPTIONS‘: {
‘MAX_ENTRIES‘: 300, # 最大緩存記錄的數量(默認300)
‘CULL_FREQUENCY‘: 3, # 緩存到達最大個數之後,剔除緩存個數的比例,即:1/CULL_FREQUENCY(默認3)
}
}
}

2.單頁面緩存:

在view——視圖層中
from
django.views.decorators.cache import cache_page 裝飾器加在視圖函數上即可 緩存5秒 @cache_page(5)

3.頁面局部緩存:

在templete中:

       {% load cache %}
            #第一個參數是緩存時間,第二個參數是別名
            {% cache 5 test %}
            緩存的時間:
            {{ ctime }}
            {% endcache %}

Django緩存機制