国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

簡介Django框架中可使用的各類緩存

2019-11-25 17:08:26
字體:
來源:轉載
供稿:網友

數據庫緩存

為了使用數據庫表作為緩存后端,首先在數據庫中運行這個命令以創建緩存表:

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包含的緩存后端。 它們經過大量測試,并且易于使用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪征市| 绥德县| 峡江县| 本溪市| 志丹县| 遂溪县| 黄山市| 固原市| 柳林县| 青海省| 湟源县| 咸丰县| 金塔县| 三江| 辽宁省| 江门市| 靖宇县| 海林市| 鄂尔多斯市| 白玉县| 内丘县| 咸阳市| 苏尼特右旗| 桐乡市| 灌阳县| 萝北县| 武冈市| 无极县| 宝应县| 葵青区| 隆化县| 罗甸县| 通州市| 葫芦岛市| 衡阳市| 镇康县| 贵溪市| 灵川县| 和平县| 金昌市| 崇文区|