Django实现内容缓存实例方法


Posted in Python onJune 30, 2020

Django实现内容缓存:

1、内存缓存

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',   # 指定缓存使用的引擎
    'LOCATION': 'unique-snowflake',   # 写在内存中的变量的唯一值 
    'TIMEOUT':300,   # 缓存超时时间(默认为300秒,None表示永不过期)
    'OPTIONS':{    
      'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                    
    }   
  }
}

2、文件缓存

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',#指定缓存使用的引擎
    'LOCATION': '/var/tmp/django_cache',   #指定缓存的路径
    'TIMEOUT':300,       #缓存超时时间(默认为300秒,None表示永不过期)
    'OPTIONS':{    
      'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                      
    }
  }      
}

3、数据库缓存

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.db.DatabaseCache',    # 指定缓存使用的引擎
    'LOCATION': 'cache_table',      # 数据库表        
    'OPTIONS':{    
      'MAX_ENTRIES': 300,        # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                    
    }   
  }      
}

4、Mrmcache缓存

使用python-memcached模块连接memcache

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',# 指定缓存使用的引擎
    'LOCATION': '192.168.10.100:11211',  # 指定Memcache缓存服务器的IP地址和端口
    'OPTIONS':{    
      'MAX_ENTRIES': 300,        # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                      
    }
  }
}

使用pylibmc模块连接memcache

settings.py文件配置

CACHES = {
    'default': {   
      # 指定缓存使用的引擎
      'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache'
      # 指定本机的11211端口为Memcache缓存服务器
      'LOCATION':'192.168.10.100:11211',                 
      'OPTIONS':{     
        'MAX_ENTRIES': 300,# 最大缓存记录的数量(默认300)
        # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
        'CULL_FREQUENCY': 3, 
      },   
    }
  }

知识点扩展:

1.缓存的简介

在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.

当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.

缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户.

2.Django提供了6种缓存方式

  1. 开发调试缓存
  2. 内存缓存
  3. 文件缓存
  4. 数据库缓存
  5. Memcache缓存(使用python-memcached模块)
  6. Memcache缓存(使用pylibmc模块)

到此这篇关于Django实现内容缓存实例方法的文章就介绍到这了,更多相关Django实现内容缓存内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
Python中动态检测编码chardet的使用教程
Jul 06 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
python tornado微信开发入门代码
Aug 24 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
Python for循环与getitem的关系详解
Jan 02 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
python pyhs2 的安装操作
Apr 07 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 #Python
Python闭包装饰器使用方法汇总
Jun 29 #Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 #Python
Python接口测试环境搭建过程详解
Jun 29 #Python
python字典的值可以修改吗
Jun 29 #Python
python怎么自定义捕获错误
Jun 29 #Python
python打开文件的方式有哪些
Jun 29 #Python
You might like
php设计模式 State (状态模式)
2011/06/26 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
如何理解python对象
2020/06/21 Python
树莓派升级python的具体步骤
2020/07/05 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
领导党性分析材料
2014/02/15 职场文书
中华魂演讲稿
2014/05/13 职场文书
有关环保的标语
2014/06/13 职场文书
艾滋病宣传标语
2014/06/25 职场文书
二婚主持词
2015/06/30 职场文书
新郎结婚感言
2015/07/31 职场文书
高三物理教学反思
2016/02/20 职场文书