如今我網頁的邏輯是,響應請求,查找數據庫相關信息,渲染模版生成最終頁面,最後返回。使用緩存後就是將這個頁面保存一段時間,在有響應請求相同頁面的時候,能夠直接返回,不用再作那麼多步。python
直接在settings.py
中設置要使用的緩存形式,和添加一些特定的參數來自定義。redis
我選擇的是用redis來作緩存數據庫,而如今就有一個很是好的插件django-redis
,能夠直接用。下載庫以後直接設置爲caches
的後端就好了,簡單配置以下:數據庫
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PICKLE_VERSION": -1, "IGNORE_EXCEPTIONS": True, } } }
設置完以後,在對應的視圖函數views.py
用cache
裝飾器去裝飾對應的函數型視圖函數,或者在urls.py
中,用直接用cache
這個函數去處理對應視圖函數。django
在views.py
後端
from django.views.decorators.cache import cache_page @cache_page def foo(request): *** return response
在urls.py
緩存
from django.views.decorators.cache import cache_page urlpatterns = [ url(r'^$', cache_page(60 * 15)(views.HomeView.as_view()), name='home'), ]
還能夠在模版文件中,緩存某部分頁面(我的感受主要去緩存那些要與數據庫交互的部分就行了)函數
{% load cache %} {% cache 60 some_part} ********* {% endcache %}
其實cache
的儲存方式能夠理解成相似於字典,都是鍵值對應的。測試
在導入cache
以後,直接按字典型操做,就能夠取到緩存中的值了。url
>>> from django.core.cache import cache >>> cache.set("foo", "value", timeout=25) >>> cache.ttl("foo") 25 >>> cache.ttl("not-existent") 0
以上例子來自django-redis
的文檔。插件
在官方文檔下載完壓縮包後,解壓,而後就make test
,經過以後就能夠make --prefix=/usr/redis
,make install
。
完成安裝後,去到目錄下,測試server
是否能成功啓動。
配置方面,我暫時就只設置了守護進程,日誌等級,存放位置,儲存上限,滿上限後的刪除規則。