Django缓存机制


django的缓存

在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.

当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.

缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户.

https://www.cnblogs.com/liuqingzheng/articles/9803351.html

Django中的6种缓存方式

  • 开发调试缓存
  • 内存缓存
  • 文件缓存
  • 数据库缓存
  • Memcache缓存(使用python-memcached模块)
  • Memcache缓存(使用pylibmc模块)

经常使用的有文件缓存和Mencache,redis缓存

1.全站缓存:

在setting中配置:
两个中间件:
MIDDLEWARE = [
# 放页面的时候,应该放在最前面,放缓存response
'django.middleware.cache.UpdateCacheMiddleware',
   'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
# 取页面放在这个位置,最后,取缓存,request
]

# 以秒为单位缓存时间
CACHE_MIDDLEWARE_SECONDS = 10


# 这个配置是:把缓存放在文件指定的文件里面
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', # 指定缓存使用的引擎
'LOCATION': 'C:\Django_study\catch', # 指定缓存的路径
'TIMEOUT': 300, # 缓存超时时间(默认为300秒,None表示永不过期)
'OPTIONS': {
'MAX_ENTRIES': 300, # 最大缓存记录的数量(默认300)
'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
}
}
}

2.单页面缓存:

在view——视图层中
from
django.views.decorators.cache import cache_page 装饰器加在视图函数上即可 缓存5秒 @cache_page(5)

3.页面局部缓存:

在templete中:

       {% load cache %}
            #第一个参数是缓存时间,第二个参数是别名
            {% cache 5 'test' %}
            缓存的时间:
            {{ ctime }}
            {% endcache %}

django缓存总结:

-django缓存:
        缓存位置:
            -放在内存
            -放在文件
            -放在数据库
            -放在redis
        缓存的方式:
            三种粒度:
                -全站缓存
                    -两个中间件(一个最前面(放,response),一个最后面(取,request方法))
                    -超时时间:在setting中配置:CACHE_MIDDLEWARE_SECONDS=10
                -单页面缓存(单个视图函数)
                    -装饰器:传缓存的时间
                    -from django.views.decorators.cache import cache_page
                    -cache_page(5)
                -页面局部缓存:
                    -{% load cache %}
                    -{% cache 超时时间 名字 %}
                        ....内部的东西会做缓存
                    -{% endcache %}

 

 

posted @ 2018-12-20 23:51  粗糙的丸子  阅读(120)  评论(0编辑  收藏  举报