Django使用redis作為緩存系統(tǒng)

為了提升網(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)系我
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • 全文鏈接 第一章 創(chuàng)建一個(gè)blog應(yīng)用第二章 使用高級(jí)特性來增強(qiáng)你的blog第三章 擴(kuò)展你的blog應(yīng)用第四章上 ...
    夜夜月閱讀 7,120評(píng)論 25 27
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,265評(píng)論 6 342
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,832評(píng)論 6 427
  • 這兒是荒蕪的鄉(xiāng)野 風(fēng)就地里無聲低吟地翻卷著紫藤蘿的香 黃沙迷途,誰披著圣女的白紗四處游蕩 究竟是何人,從心靈上撕去...
    innerspring閱讀 297評(píng)論 0 0

友情鏈接更多精彩內(nèi)容