為了提升網(wǎng)站的性能,加一層緩存是少不了的,由于之前做的東西是用django寫的,所以就介紹一下django的緩存系統(tǒng)。
又由于我還使用了redis作為消息隊(duì)列的后端,這里就不在介紹其他內(nèi)存數(shù)據(jù)庫,直接使用redis。
django使用redis作為緩存
redis
安裝
由于筆者使用的是Ubuntu系統(tǒng),安裝較為簡(jiǎn)單,其他系統(tǒng)請(qǐng)自行查看官方文檔。
$ sudo apt-get install redis-server
測(cè)試
使用redis命令行客戶端測(cè)試一下是否成功
$ redis-cli
能出現(xiàn)以下結(jié)果即為成功
redis 127.0.0.1:6379>
其他的redis知識(shí)這里不左介紹,如果有興趣,可以自行了解
django使用redis
安裝django-redis
為了讓django能夠使用redis作為緩存,有人開發(fā)了一個(gè)庫來幫我們實(shí)現(xiàn)。django-redis,我們需要安裝一下才能使用redis
在終端中輸入一下命令進(jìn)行安裝(pip方式)
$ pip install django-redis
配置django-redis
在你項(xiàng)目下的setting.py中添加如下代碼即可
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
這樣就能開始使用了,如果你想添加修改更多配置,想讓其更適合自己的項(xiàng)目一點(diǎn),可以自己去查看官方文檔
這里隨便配置一下session backend,同樣在下面添加
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
使用緩存
在setting中配置好上述配置之后我們就可以開始使用了,django中自帶了幾個(gè)常用的修飾器,可以視情況使用。
比如:
- django.views.decorators.cache.cache_page()針對(duì)每個(gè)視圖的緩存
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def my_view(request):
...
- 在setting添加配置,對(duì)全站進(jìn)行緩存
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
]
- 還可以調(diào)用低級(jí)api,直接操作緩存。
>>> cache.set('my_key', 'hello, world!', 30)
>>> cache.get('my_key')
'hello, world!'
可以按照自己的需要去選擇合適的使用方法。
注:
- 上述環(huán)境在ubuntu16.04 lts django1.9中搭建測(cè)試成功
- 上述文字皆為個(gè)人看法,如有錯(cuò)誤或建議請(qǐng)及時(shí)聯(lián)系我