Django中的CACHE_BACKEND参数和站点级Cache设置


Posted in Python onJuly 23, 2015

CACHE_BACKEND参数

每个缓存后端都可能使用参数。 它们在CACHE_BACKEND设置中以查询字符串形式给出。 有效参数如下:

  •     timeout:用于缓存的过期时间,以秒为单位。 这个参数默认被设置为300秒(五分钟)。
  •     max_entries:对于内存,文件系统和数据库后端,高速缓存允许的最大条目数,超出这个数则旧值将被删除。 这个参数默认是300。
  •     cull_percentage :当达到 max_entries 的时候,被删除的条目比率。 实际的比率是 1/cull_percentage ,所以设置cull_frequency=2就是在达到 max_entries 的时候去除一半数量的缓存。

    把 cull_frequency 的值设置为 0 意味着当达到 max_entries 时,缓存将被清空。 这将以很多缓存丢失为代价,大大提高接受访问的速度。

在这个例子中, timeout 被设成 60

CACHE_BACKEND = "memcached://127.0.0.1:11211/?timeout=60"

而在这个例子中, timeout 设为 30 而 max_entries 为 400 :

CACHE_BACKEND = "locmem:///?timeout=30&max_entries=400"

其中,非法的参数与非法的参数值都将被忽略。
站点级 Cache

一旦高速缓存设置,最简单的方法是使用缓存缓存整个网站。 您 需要添加'django.middleware.cache.UpdateCacheMiddleware'和 ‘django.middleware.cache.FetchFromCacheMiddleware'到您的MIDDLEWARE_CLASSES设置中,在这个例子中是:

MIDDLEWARE_CLASSES = (
 'django.middleware.cache.UpdateCacheMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.cache.FetchFromCacheMiddleware',
)

注意:

不,这里并没有排版错误: 修改的中间件,必须放在列表的开始位置,而fectch中间件,必须放在最后。 细节有点费解,如果您想了解完整内幕请参看下面的MIDDLEWARE_CLASSES顺序。

然后,在你的Django settings文件里加入下面所需的设置:

  •     CACHE_MIDDLEWARE_SECONDS :每个页面应该被缓存的秒数。
  •     CACHE_MIDDLEWARE_KEY_PREFIX :如果缓存被多个使用相同Django安装的网站所共享,那么把这个值设成当前网站名,或其他能代表这个Django实例的唯一字符串,以避免key发生冲突。 如果你不在意的话可以设成空字符串。

缓存中间件缓存每个没有GET或者POST参数的页面。 或者,如果CACHE_MIDDLEWARE_ANONYMOUS_ONLY设置为True,只有匿名请求(即不是由登录的用户)将被缓存。 如果想取消用户相关页面(user-specific pages)的缓存,例如Djangos 的管理界面,这是一种既简单又有效的方法。 CACHE_MIDDLEWARE_ANONYMOUS_ONLY,你应该确保你已经启动AuthenticationMiddleware。

此外,缓存中间件为每个HttpResponse自动设置了几个头部信息:

  •     当一个新(没缓存的)版本的页面被请求时设置Last-Modified头部为当前日期/时间。
  •     设置Expires头部为当前日期/时间加上定义的CACHE_MIDDLEWARE_SECONDS。
  •     设置Cache-Control头部来给页面一个最长的有效期,值来自于CACHE_MIDDLEWARE_SECONDS设置。

如果视图设置自己的缓存到期时间(即 它有一个最大年龄在头部信息的Cache-Control中),那么页面将缓存直到过期,而不是CACHE_MIDDLEWARE_SECONDS。使用django.views.decorators.cache装饰器,您可以轻松地设置视图的到期时间(使用cache_control装饰器)或禁用缓存视图(使用never_cache装饰器)。

Python 相关文章推荐
在Python中操作字典之setdefault()方法的使用
May 21 Python
django+js+ajax实现刷新页面的方法
May 22 Python
python实现决策树分类算法
Dec 21 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
python将dict中的unicode打印成中文实例
May 11 Python
Python读取二进制文件代码方法解析
Jun 22 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
python map比for循环快在哪
Sep 21 Python
Prometheus开发中间件Exporter过程详解
Nov 30 Python
Python实现滑雪小游戏
Sep 25 Python
简介Django框架中可使用的各类缓存
Jul 23 #Python
浅析Python的Django框架中的Memcached
Jul 23 #Python
详解Django中的权限和组以及消息
Jul 23 #Python
在Django的模板中使用认证数据的方法
Jul 23 #Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 #Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 #Python
在Django中限制已登录用户的访问的方法
Jul 23 #Python
You might like
PHP个人网站架设连环讲(四)
2006/10/09 PHP
php获取远程文件内容的函数
2015/11/02 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
javascript中直接写php代码的方法
2013/07/31 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
canvas绘制多边形
2017/02/24 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
python3.5 tkinter实现页面跳转
2018/01/30 Python
Python iter()函数用法实例分析
2018/03/17 Python
python查询mysql,返回json的实例
2018/03/26 Python
python获取中文字符串长度的方法
2018/11/14 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
公务员转正鉴定材料
2014/02/11 职场文书
银行求职信怎么写
2014/05/26 职场文书
小学优秀学生评语
2014/12/29 职场文书
银行求职自荐信范文
2015/03/04 职场文书
网络舆情信息简报
2015/07/21 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书