簡介Django架構中可使用的各類緩衝

來源:互聯網
上載者:User
資料庫緩衝

為了使用資料庫表作為緩衝後端,首先在資料庫中運行這個命令以建立緩衝表:

python manage.py createcachetable [cache_table_name]

這裡的[cache_table_name]是要建立的資料庫表名。 (這個名字隨你的便,只要它是一個有效表名,而且不是已經在您的資料庫中使用的表名。)這個命令以Django的資料庫緩衝系統所期望的格式建立一個表。

一旦你建立了資料庫表,把你的CACHE_BACKEND設定為”db://tablename”,這裡的tablename是資料庫表的名字,在這個例子中,緩衝表名為my_cache_table: 在這個例子中,快取表的名字是my_cache_table:

CACHE_BACKEND = 'db://my_cache_table'

資料庫緩衝後端使用你的settings檔案指定的同一資料庫。 你不能為你的緩衝表使用不同的資料庫後端.

如果你已經有了一個快速,良好的索引資料庫伺服器,那麼資料庫緩衝的效果最明顯。
檔案系統快取

要把快取項目放在檔案系統上,請為CACHE_BACKEND使用”file://“的緩衝類型。例如,要把快取資料儲存在/var/tmp/django_cache上,請使用此設定:

CACHE_BACKEND = 'file:///var/tmp/django_cache'

注意例子中開頭有三個斜線。 頭兩項是file://,第三個是第一個字元的目錄路徑,/var/tmp/django_cache。如果你使用的是Windows,在file://之後加上檔案的磁碟機代號:

file://c:/foo/bar

目錄路徑應該是*絕對*路徑,即應該以你的檔案系統的根開始。 在設定的結尾放置斜線與否無關緊要。

確認該設定指向的目錄存在並且你的Web伺服器啟動並執行系統的使用者可以讀寫該目錄。 繼續上面的例子,如果你的伺服器以使用者apache運行,確認/var/tmp/django_cache存在並且使用者apache可以讀寫/var/tmp/django_cache目錄。

每個緩衝值將被儲存為單獨的檔案,其內容是Python的pickle模組以序列化(“pickled”)形式儲存的快取資料。 每個檔案的名稱是緩衝鍵,以規避開安全檔案系統的使用。
本地記憶體緩衝

如果你想利用記憶體緩衝的速度優勢,但又不能使用Memcached,可以考慮使用本機存放區器緩衝後端。 此緩衝的多進程和安全執行緒。 設定 CACHE_BACKEND 為 locmem:/// 來使用它,例如:

CACHE_BACKEND = 'locmem:///'

請注意,每個進程都有自己私人的緩衝執行個體,這意味著跨進程緩衝是不可能的。 這顯然也意味著本地記憶體緩衝效率並不是特別高,所以對產品環境來說它可能不是一個好選擇。 對開發來說還不錯。
仿緩衝(供開發時使用)

最後,Django提供了一個假緩衝(只是實現了緩衝介面,實際上什麼都不做)。

假如你有一個產品網站,在許多地方使用高度緩衝,但在開發/測試環境中,你不想緩衝,也不想改變代碼,這就非常有用了。 要啟用虛擬緩衝,就像這樣設定CACHE_BACKEND:

CACHE_BACKEND = 'dummy:///'

使用自訂緩衝後端

儘管Django包含對許多緩衝後端的支援,在某些情況下,你仍然想使用自訂緩衝後端。 要讓Django使用外部緩衝後端,需要使用一個Python import路徑作為的CACHE_BACKEND URI的(第一個冒號前的部分),像這樣:

CACHE_BACKEND = 'path.to.backend://'

如果您構建自己的後端,你可以參考標準緩衝後端的實現。 原始碼在Django的代碼目錄的django/core/cache/backends/下。

注意 如果沒有一個真正令人信服的理由,比如主機不支援,你就應該堅持使用Django包含的緩衝後端。 它們經過大量測試,並且便於使用。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.