• Django缓存机制


    Django中的缓存方式

    缓存方式:缓存的位置

    1. 开发调试缓存:没有缓存

    2. 缓存到内存中

    3. 缓存到数据库

    4. 缓存到文件

    5. 缓存到redis

    缓存位置的配置(在setting中配置,BACKEND不同,缓存的位置不同)

    文件缓存setting

    CACHES = {
     'default': {
      'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', #指定缓存使用的引擎
      'LOCATION': '/var/tmp/django_cache',        #指定缓存的路径
      'TIMEOUT':300,              #缓存超时时间(默认为300秒,None表示永不过期)
      'OPTIONS':{
       'MAX_ENTRIES': 300,            # 最大缓存记录的数量(默认300)
       'CULL_FREQUENCY': 3,           # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      }
     }   
    }
    

    缓存粒度

    1. 全站缓存

    2. 单页面缓存

    3. 局部缓存

    缓存的使用

    需要配置setting文件,将CACHE配置进去

    单页面缓存:

    from django.views.decorators.cache import cache_page
    import time
    from .models import *
    
    @cache_page(15)          #超时时间为15秒
    def index(request):
      t=time.time()      #获取当前时间
      bookList=Book.objects.all()
      return render(request,"index.html",locals())
    

    全站缓存:

    缓存整个站点,是最简单的缓存方法
    
    在 MIDDLEWARE_CLASSES 中加入 “update” 和 “fetch” 中间件
    MIDDLEWARE_CLASSES = (
        ‘django.middleware.cache.UpdateCacheMiddleware’, #第一
        'django.middleware.common.CommonMiddleware',
        ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后
    )
    “update” 必须配置在第一个
    “fetch” 必须配置在最后一个
    

    局部缓存:

    {% load cache %}
    {% cache 5 'test'%}    第一个参数表示缓存时间,第二个参数是key值(取缓存的时候,需要根据key值取)
    	当前时间:{{ time }}
    {% endcache %}
    

    高级用法:

    前后端分离项目

    # 设置值与取值
    cache.set('test_data',{'name':'lqz','age':18},5)
    cache.get('test_data')
    
  • 相关阅读:
    Centos7安装配置JDK8
    Jmeter学习笔记
    mysql5.7版本免安装配置教程
    mysql查看线程详解(转载)
    xpath定位方法小结(转载)
    nginx负载均衡的5种策略(转载)
    loadrunner多场景的串行执行以及定时执行
    mysql 远程连接超时解决办法
    JAVA内存构成详解
    jconsole远程连接超时问题解决方法
  • 原文地址:https://www.cnblogs.com/majingjie/p/11151694.html
Copyright © 2020-2023  润新知