zoukankan      html  css  js  c++  java
  • 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_studycatch', # 指定缓存的路径
    '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 %}

     

  • 相关阅读:
    ASP实现禁止从外部提交数据
    随机提取N条记录[多种数据库方法]
    创建一个带滚动条的div
    将IP最后一位替换为星号
    用PHP5写的smtp类,支持身份验证、附件、抄送、暗送
    1004
    1021
    ProcessMonitor
    悲观锁和事务处理并发冲突
    spring.net入门
  • 原文地址:https://www.cnblogs.com/cao123/p/10153340.html
Copyright © 2011-2022 走看看