最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django緩存配置的幾種方法詳解

 更新時(shí)間:2018年07月16日 10:43:00   作者:張丶耀慶  
緩存對各位學(xué)習(xí)或者使用django的朋友們來說應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于django緩存配置的幾種方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

為什么要用緩存?

首先說,為什么要用緩存的,由于Django是動態(tài)網(wǎng)站,所有每次請求均會去數(shù)據(jù)進(jìn)行相應(yīng)的操作,當(dāng)程序訪問量大時(shí),耗時(shí)必然會更加明顯,最簡單解決方式是使用:緩存,緩存將一個某個views的返回值保存至內(nèi)存或者memcache中,5分鐘內(nèi)再有人來訪問時(shí)(時(shí)間可以設(shè)置),則不再去執(zhí)行view中的操作,而是直接從內(nèi)存或者Redis中之前緩存的內(nèi)容拿到,并返回。

另外,緩存只是一類統(tǒng)稱,一般其介質(zhì)是速度很快的內(nèi)存,但也可以是能加快數(shù)據(jù)讀取的其它方式。

什么時(shí)候適合用緩存?

對頁面實(shí)時(shí)性要求不高的頁面,可以用緩存。比如博客文章,假設(shè)用戶一天更新一篇文章,那么可以為博客設(shè)置1天的緩存;一天后會刷新。另外像購物網(wǎng)站,商品的描述信息幾乎不會變化,而商品的庫存數(shù)量卻要求根據(jù)用戶的購買實(shí)時(shí)更新,因此也應(yīng)該應(yīng)用合適的緩存策略。

緩存的配置

配置緩存提供了6種方式。

  • 開發(fā)調(diào)試
  • 內(nèi)存
  • 文件
  • 數(shù)據(jù)庫
  • Memcache緩存(python-memcached模塊)
  • Memcache緩存(pylibmc模塊)

開發(fā)調(diào)試:

說明:此為開始調(diào)試用,實(shí)際內(nèi)部不做任何操作

CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.dummy.DummyCache', # 引擎
  'TIMEOUT': 300,            # 緩存超時(shí)時(shí)間(默認(rèn)300秒,None表示永不過期,0表示立即過期)
  'OPTIONS':{
   'MAX_ENTRIES': 300,          # 最大緩存?zhèn)€數(shù)(默認(rèn)300)
   'CULL_FREQUENCY': 3,          # 緩存到達(dá)最大個數(shù)之后,剔除緩存?zhèn)€數(shù)的比例,即:1/CULL_FREQUENCY(默認(rèn)3),3:表示1/3
  },
  #這邊只的是緩存的key:p1:1:func_name
  'KEY_PREFIX': 'p1',            # 緩存key的前綴(默認(rèn)空)
  'VERSION': 1,             # 緩存key的版本(默認(rèn)1)
  'KEY_FUNCTION':"func_name"         # 生成key的函數(shù)(默認(rèn)函數(shù)會生成為:【前綴:版本: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

內(nèi)存:

注意是絕對位置(從根目錄開始),必須保證服務(wù)器對你列出的路徑具有讀寫權(quán)限

#'LOCATION': 'c:\foo\bar',#windows下的示例

說明:內(nèi)存版本的時(shí)候,必須設(shè)置一個值,這個值是唯一的,此緩存將內(nèi)容保存至內(nèi)存的變量中

CACHES = {
  'default': {
   'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
   'LOCATION': 'unique-snowflake', #這邊必須設(shè)置一個值,這個值是唯一的
  }
 #其他的配置和開發(fā)調(diào)試版本一樣
}

文件:說明:此緩存將內(nèi)容保存至文件

CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
  'LOCATION': '/var/tmp/django_cache', #緩存存放的路徑<br data-filtered="filtered">    
 }
 #其他的配置和開發(fā)調(diào)試版本一樣
}

數(shù)據(jù)庫:說明:此緩存將內(nèi)容保存至數(shù)據(jù)庫

CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
  'LOCATION': 'my_cache_table', # 設(shè)置一個數(shù)據(jù)庫存放緩存的表名
 }
 #其他的配置和開發(fā)調(diào)試版本一樣
}

# 注:執(zhí)行創(chuàng)建表命令 python manage.py createcachetable

Memcache緩存(python-memcached模塊)

說明:此緩存使用python-memcached模塊連接memcache

#單臺機(jī)器
CACHES = {
  'default': {
   'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
   'LOCATION': '127.0.0.1:11211',
  }
  #其他的配置和開發(fā)調(diào)試版本一樣
}
 
#存放本地的
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': 'unix:/tmp/memcached.sock',
 }
 #其他的配置和開發(fā)調(diào)試版本一樣
} 
 
#支持集群,負(fù)載均衡
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': [
   '172.19.26.240:11211',
   '172.19.26.242:11211',
   #設(shè)置權(quán)重
   #('172.19.26.240:11211',10),
   #('172.19.26.242:11211',20),
  ] 
 }
 #其他的配置和開發(fā)調(diào)試版本一樣
}

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',
   ]
  }
 }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • python中Tkinter復(fù)選框Checkbutton是否被選中判斷

    python中Tkinter復(fù)選框Checkbutton是否被選中判斷

    這篇文章主要介紹了python中Tkinter復(fù)選框Checkbutton是否被選中判斷方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 解決pycharm 誤刪掉項(xiàng)目文件的處理方法

    解決pycharm 誤刪掉項(xiàng)目文件的處理方法

    今天小編就為大家分享一篇解決pycharm 誤刪掉項(xiàng)目文件的處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 一文詳解為什么運(yùn)行Python就是找不到文件路徑

    一文詳解為什么運(yùn)行Python就是找不到文件路徑

    這篇文章主要介紹了在編程中遇到文件路徑找不到問題的原因和解決方法,包括路徑錯誤、路徑分隔符問題、工作目錄錯誤、權(quán)限問題以及虛擬環(huán)境的影響,并提供了一些實(shí)用的解決方案,通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • python OpenCV學(xué)習(xí)筆記之繪制直方圖的方法

    python OpenCV學(xué)習(xí)筆記之繪制直方圖的方法

    本篇文章主要介紹了python OpenCV學(xué)習(xí)筆記之繪制直方圖的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python實(shí)現(xiàn)問題回答小游戲

    Python實(shí)現(xiàn)問題回答小游戲

    這篇文章主要介紹了利用Python制作一個簡單的知識競賽小游戲,可以實(shí)現(xiàn)回答問題功能,文中的示例代碼介紹詳細(xì),感興趣的同學(xué)快跟隨小編一起學(xué)習(xí)吧
    2021-12-12
  • python自動化測試之DDT數(shù)據(jù)驅(qū)動的實(shí)現(xiàn)代碼

    python自動化測試之DDT數(shù)據(jù)驅(qū)動的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python自動化測試之DDT數(shù)據(jù)驅(qū)動的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python如何控制進(jìn)程或者線程的個數(shù)

    python如何控制進(jìn)程或者線程的個數(shù)

    這篇文章主要介紹了python如何控制進(jìn)程或者線程的個數(shù),幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • Python解決多進(jìn)程間訪問效率低的方法總結(jié)

    Python解決多進(jìn)程間訪問效率低的方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了當(dāng)Python多進(jìn)程間訪問效率低時(shí),應(yīng)該如何解決?文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-09-09
  • Python?gRPC流式通信協(xié)議詳細(xì)講解

    Python?gRPC流式通信協(xié)議詳細(xì)講解

    這篇文章主要介紹了Python?gRPC流式通信協(xié)議,最近幾天在搞golang的grpc,跑通之后想用php作為客戶端調(diào)用一下grpc服務(wù),結(jié)果拉了,一個php的grpc服務(wù)安裝,搞了好幾天,總算搞定了
    2022-11-11
  • 使用Python設(shè)置PDF中圖片的透明度的實(shí)現(xiàn)方法

    使用Python設(shè)置PDF中圖片的透明度的實(shí)現(xiàn)方法

    在PDF文檔的設(shè)計(jì)與內(nèi)容創(chuàng)作過程中,圖像的透明度設(shè)置是一個重要的操作,尤其是在處理圖文密集型PDF文檔時(shí),本文將介紹如何使用Python添加指定透明度的圖片到PDF文檔或調(diào)整PDF文檔中現(xiàn)有圖片的透明度,需要的朋友可以參考下
    2024-09-09

最新評論

土默特右旗| 丰都县| 泰安市| 共和县| 东方市| 酒泉市| 南昌县| 延安市| 万源市| 民权县| 循化| 喀喇| 浦北县| 元阳县| 吉木乃县| 天全县| 皮山县| 岫岩| 开鲁县| 东乡族自治县| 大足县| 秦安县| 大竹县| 镇远县| 稻城县| 祁东县| 博白县| 上林县| 水城县| 鄂伦春自治旗| 来安县| 肃北| 海丰县| 东乌珠穆沁旗| 海淀区| 衡阳县| 奉贤区| 桃园县| 阜南县| 共和县| 盐山县|