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获取Linux系统下的本机IP地址代码分享
Nov 07 Python
在Python中关于中文编码问题的处理建议
Apr 08 Python
Python字符串处理实现单词反转
Jun 14 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
python实现画出e指数函数的图像
Nov 21 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 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语法小结之基础和变量
2015/11/22 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
采购员岗位职责
2013/11/15 职场文书
迷你西餐厅创业计划书范文
2013/12/31 职场文书
乡下人家教学反思
2014/02/01 职场文书
消防安全责任书范本
2014/04/15 职场文书
公司晚会策划方案
2014/05/17 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
2015党建工作简报
2015/07/21 职场文书
二十年同学聚会感言
2015/07/30 职场文书