bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Django中緩存Cache指的是什么-創新互聯

創新互聯www.cdcxhl.cn八線動態BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

創新互聯主營新密網站建設的網絡公司,主營網站建設方案,成都app開發,新密h5小程序定制開發搭建,新密網站營銷推廣歡迎新密等地區企業咨詢

小編給大家分享一下Django中緩存Cache指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!

緩存(Cache)對于創建一個高性能的網站和提升用戶體驗來說是非常重要的,然而對我們這種只用得起拼多多的碼農而言最重要的是學會如何使用緩存。今天我們就來看看緩存Cache應用場景及工作原理吧,并詳細介紹如何在Django中設置Cache并使用它們。

Django中緩存Cache指的是什么

什么是緩存Cache

緩存是一類可以更快的讀取數據的介質統稱,也指其它可以加快數據讀取的存儲方式。一般用來存儲臨時數據,常用介質的是讀取速度很快的內存。一般來說從數據庫多次把所需要的數據提取出來,要比從內存或者硬盤等一次讀出來付出的成本大很多。對于中大型網站而言,使用緩存減少對數據庫的訪問次數是提升網站性能的關鍵之一。

為什么要使用緩存Cache

在Django中,當用戶請求到達視圖后,視圖會先從數據庫提取數據放到模板中進行動態渲染,渲染后的結果就是用戶看到的網頁。如果用戶每次請求都從數據庫提取數據并渲染,將極大降低性能,不僅服務器壓力大,而且客戶端也無法即時獲得響應。如果能將渲染后的結果放到速度更快的緩存中,每次有請求過來,先檢查緩存中是否有對應的資源,如果有,直接從緩存中取出來返回響應,節省取數據和渲染的時間,不僅能大大提高系統性能,還能提高用戶體驗。

我們來看一個實際的博客例子。每次當我們訪問首頁時,下面視圖都會從數據庫中提取文章列表,并渲染的模板里去。大多數情況下,我們的博客不會更新得那么頻繁,所以文章列表是不變的。這樣用戶在一定時間內多次訪問首頁時都從數據庫重新讀取同樣的數據是一種很大的浪費。

from django.shortcuts import render
def index(request):
    # 讀取數據庫等并渲染到網頁
    article_list = Article.objects.all()
    return render(request, 'index.html', {'article_list': article_list})

使用緩存Cache就可以幫我們解決這個問題。當用戶首次訪問博客首頁時,我們從數據庫中提取文章列表,并將其存儲到緩存里(常用的是內存,這取決于你的設置)。當用戶在單位時間內再次訪問首頁時, Django先檢查緩存是否過期(本例是15分鐘), 再檢查緩存里文章列表資源是否存在,如果存在,直接從緩存中讀取數據, 并渲染模板。

from django.shortcuts import render
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)  # 秒數,這里指緩存 15 分鐘
def index(request):
    article_list = Article.objects.all()
    return render(request, 'index.html', {'article_list': article_list})

注意: 在Django中使用緩存前,我們必需先做必要的設置。

緩存Cache的應用場景

緩存主要適用于對頁面實時性要求不高的頁面。存放在緩存的數據,通常是頻繁訪問的,而不會經常修改的數據。我們來舉幾個應用例子:

1.博客文章。假設用戶一天更新一篇文章,那么可以為博客設置1天的緩存,一天后會刷新。

2.購物網站。商品的描述信息幾乎不會變化,而商品的購買數量需要根據用戶情況實時更新。我們可以只選擇緩存商品描述信息。

3.緩存網頁片段。比如緩存網頁導航菜單和腳部(Footer)。

Django緩存設置

Django中提供了多種緩存方式,如果要使用緩存,需要先在settings.py中進行配置,然后應用。根據緩存介質的不同,你需要設置不同的緩存后臺Backend。

Memcached緩存

Memcached是基于內存的緩存,Django原生支持的最快最有效的緩存系統。對于大多數場景,我們推薦使用Memcached,數據緩存在服務器端。使用前需要通過pip安裝memcached的插件python-memcached和pylibmc,可以同時支持多個服務器上面的memcached。

下面是使用pyhon-memcached的設置。

# localhost
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
# unix soket
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'unix:/tmp/memcached.sock',
    }
}   
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [
            '172.19.26.240:11211',
            '172.19.26.242:11211',
        ]
        # 我們也可以給緩存機器加權重,權重高的承擔更多的請求,如下
        'LOCATION': [
            ('172.19.26.240:11211',5),
            ('172.19.26.242:11211',1),
        ]
    }
 }

數據庫緩存

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',
    }

文件系統緩存

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': '/var/tmp/django_cache',#這個是文件夾的路徑
        #'LOCATION': 'c:\foo\bar',#windows下的示例
    }
}

本地內存緩存

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake'
    }
}

以上是Django中緩存Cache指的是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯-成都網站建設公司行業資訊頻道!

網頁標題:Django中緩存Cache指的是什么-創新互聯
鏈接分享:http://vcdvsql.cn/article40/phheo.html

成都網站建設公司_創新互聯,為您提供搜索引擎優化云服務器商城網站小程序開發定制網站網站收錄

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設