您好,登錄后才能下訂單哦!
這篇文章給大家介紹在django中配置緩存的方法有哪些,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
緩存的配置
配置緩存提供了6種方式。
開發調試
內存
文件
數據庫
Memcache緩存(python-memcached模塊)
Memcache緩存(pylibmc模塊)
開發調試:
說明:此為開始調試用,實際內部不做任何操作
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', # 引擎 'TIMEOUT': 300, # 緩存超時時間(默認300秒,None表示永不過期,0表示立即過期) 'OPTIONS':{ 'MAX_ENTRIES': 300, # 最大緩存個數(默認300) 'CULL_FREQUENCY': 3, # 緩存到達最大個數之后,剔除緩存個數的比例,即:1/CULL_FREQUENCY(默認3),3:表示1/3 }, #這邊只的是緩存的key:p1:1:func_name 'KEY_PREFIX': 'p1', # 緩存key的前綴(默認空) 'VERSION': 1, # 緩存key的版本(默認1) 'KEY_FUNCTION':"func_name" # 生成key的函數(默認函數會生成為:【前綴:版本:key】) } }其他除了引擎不一樣,其他的都是通用的,這邊只的是緩存的key:p1:1:func_name的源碼如下:所以我們就可以自定義這個key的格式。 # 自定義key def default_key_func(key, key_prefix, version): """ Default function to generate keys. Constructs the key used by all other methods. By default it prepends the `key_prefix'. KEY_FUNCTION can be used to specify an alternate function with custom key making behavior. """ return '%s:%s:%s' % (key_prefix, version, key) def get_key_func(key_func): """ Function to decide which key function to use. Defaults to ``default_key_func``. """ if key_func is not None: if callable(key_func): return key_func else: return import_string(key_func) return default_key_func
內存:
注意是絕對位置(從根目錄開始),必須保證服務器對你列出的路徑具有讀寫權限
#'LOCATION': 'c:\foo\bar',#windows下的示例
說明:內存版本的時候,必須設置一個值,這個值是唯一的,此緩存將內容保存至內存的變量中
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'unique-snowflake', #這邊必須設置一個值,這個值是唯一的 } #其他的配置和開發調試版本一樣 }
文件:說明:此緩存將內容保存至文件
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', 'LOCATION': '/var/tmp/django_cache', #緩存存放的路徑<br data-filtered="filtered"> } #其他的配置和開發調試版本一樣 }
數據庫:說明:此緩存將內容保存至數據庫
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'my_cache_table', # 設置一個數據庫存放緩存的表名 } #其他的配置和開發調試版本一樣 } # 注:執行創建表命令 python manage.py createcachetable
Memcache緩存(python-memcached模塊)
說明:此緩存使用python-memcached模塊連接memcache
#單臺機器 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } #其他的配置和開發調試版本一樣 } #存放本地的 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', #設置權重 #('172.19.26.240:11211',10), #('172.19.26.242:11211',20), ] } #其他的配置和開發調試版本一樣 }
Memcache緩存(pylibmc模塊)
說明:此緩存使用pylibmc模塊連接memcache
# 此緩存使用pylibmc模塊連接memcache CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': '127.0.0.1:11211', } } CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': '/tmp/memcached.sock', } } CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': [ '172.19.26.240:11211', '172.19.26.242:11211', ] } }
關于在django中配置緩存的方法有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。