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

 更新时间:2015年07月23日 15:21:08   投稿:goldensun  
这篇文章主要介绍了Django中的CACHE_BACKEND参数和站点级Cache设置,Python是最具人气的Python web框架,需要的朋友可以参考下

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实现旋转和水平翻转的方法

    今天小编就为大家分享一篇python实现旋转和水平翻转的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python自动创建Markdown表格使用实例探究

    Python自动创建Markdown表格使用实例探究

    Markdown表格是文档中整理和展示数据的重要方式之一,然而,手动编写大型表格可能会费时且容易出错,本文将介绍如何使用Python自动创建Markdown表格,通过示例代码详细展示各种场景下的创建方法,提高表格生成的效率
    2024-01-01
  • matplotlib bar()实现百分比堆积柱状图

    matplotlib bar()实现百分比堆积柱状图

    这篇文章主要介绍了matplotlib bar()实现百分比堆积柱状图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Django 404、500页面全局配置知识点详解

    Django 404、500页面全局配置知识点详解

    在本篇文章里小编给大家整理了关于Django 404、500页面全局配置知识点详解,需要的朋友们可以学习下。
    2020-03-03
  • 详解Django中CBV(Class Base Views)模型源码分析

    详解Django中CBV(Class Base Views)模型源码分析

    这篇文章主要介绍了详解Django中CBV(Class Base Views)模型源码分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Python中super关键字用法实例分析

    Python中super关键字用法实例分析

    这篇文章主要介绍了Python中super关键字用法,实例分析了super关键字的功能及相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • Pygame如何使用精灵和碰撞检测

    Pygame如何使用精灵和碰撞检测

    本文主要介绍了Pygame如何使用精灵和碰撞检测,它们能够帮助我们跟踪屏幕上移动的大量图像。我们还会了解如何检测两个图像相互重叠或者碰撞的方法。
    2021-11-11
  • Python 代码实现各种酷炫功能

    Python 代码实现各种酷炫功能

    这篇文章主要介绍了Python 代码实现各种酷炫功能,生成二维码、生成词云、批量抠图、文字情绪识别等功能分享,需要的小伙伴可以参考一下
    2022-03-03
  • python私有属性和方法实例分析

    python私有属性和方法实例分析

    这篇文章主要介绍了python私有属性和方法的用法,实例分析了python私有属性和方法的原理及具体使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • Python闭包的使用方法

    Python闭包的使用方法

    这篇文章主要介绍了Python闭包的使用方法,当返回的内部函数使用了外部函数的变量就形成了闭包,下文更多相关内容需要的小伙伴可以参考一下
    2022-04-04

最新评论