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开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
机器学习python实战之决策树
Nov 01 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
python实现小球弹跳效果
May 10 Python
Django框架表单操作实例分析
Nov 04 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
关于Django Models CharField 参数说明
Mar 31 Python
Python中的xlrd模块使用原理解析
May 21 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
pandas中DataFrame检测重复值的实现
May 26 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
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
php使用ICQ网关发送手机短信
2013/10/30 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
javascript来定义类的规范小结
2010/11/19 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
Vue实现简易计算器
2020/02/25 Javascript
python分割和拼接字符串
2013/11/01 Python
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
python执行get提交的方法
2015/04/29 Python
Python中的urllib模块使用详解
2015/07/07 Python
全面理解Python中self的用法
2016/06/04 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python实现Linux监控的方法
2019/05/16 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
使用python turtle画高达
2020/01/19 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
物流司机岗位职责
2013/12/28 职场文书
给校长的建议书500字
2014/05/15 职场文书
婚礼秀策划方案
2014/05/19 职场文书
求职教师自荐书
2014/06/19 职场文书
励志演讲稿大全
2014/08/21 职场文书
2016年五一促销广告语
2016/01/28 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript