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调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
Aug 15 Python
Python中使用PIPE操作Linux管道
Feb 04 Python
python中hashlib模块用法示例
Oct 30 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
WxPython建立批量录入框窗口
Feb 27 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
Django model重写save方法及update踩坑详解
Jul 27 Python
Python使用openpyxl复制整张sheet
Mar 24 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
一个php作的文本留言本的例子(五)
2006/10/09 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
vue中多个倒计时实现代码实例
2019/03/27 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
Django实现文件上传和下载功能
2019/10/06 Python
django使用xadmin的全局配置详解
2019/11/15 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
const和static readonly区别
2013/05/20 面试题
小学科学教学反思
2014/01/26 职场文书
社保委托书怎么写
2014/08/02 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
稽核岗位职责
2015/02/10 职场文书
企业培训简报范文
2015/07/20 职场文书
文明礼貌主题班会
2015/08/14 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书