缓存的介绍

在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户.

各种缓存的配置

一、开发调试(此模式为开发调试使用,实际上不执行任何操作)

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache',  # 缓存后台使用的引擎'TIMEOUT': 300,            # 缓存超时时间(默认300秒,None表示永不过期,0表示立即过期)'OPTIONS':{'MAX_ENTRIES': 300,          # 最大缓存记录的数量(默认300)'CULL_FREQUENCY': 3,          # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
  },}
}

二、内存缓存(将缓存内容保存至内存区域中)

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',  # 指定缓存使用的引擎'LOCATION': 'unique-snowflake',         # 写在内存中的变量的唯一值 'TIMEOUT':300,             # 缓存超时时间(默认为300秒,None表示永不过期)'OPTIONS':{'MAX_ENTRIES': 300,           # 最大缓存记录的数量(默认300)'CULL_FREQUENCY': 3,          # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
  }  }
}

三、文件缓存(把缓存数据存储在文件中)

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)
  }}
}

四、数据库缓存(把缓存数据存储在数据库中)

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.db.DatabaseCache',  # 指定缓存使用的引擎'LOCATION': 'cache_table',          # 数据库表    'OPTIONS':{'MAX_ENTRIES': 300,           # 最大缓存记录的数量(默认300)'CULL_FREQUENCY': 3,          # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
  }  }
}

创建缓存数据库表的语句python manage.py createcachetable

五、memcache缓存(使用python-memcached模块链接memcache)

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', # 指定缓存使用的引擎'LOCATION': '192.168.10.100:11211',         # 指定Memcache缓存服务器的IP地址和端口'OPTIONS':{'MAX_ENTRIES': 300,            # 最大缓存记录的数量(默认300)'CULL_FREQUENCY': 3,           # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
  }}
}

六、memcache缓存(使用pylibmc模块链接memcache)

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',  # 指定缓存使用的引擎'LOCATION':'192.168.10.100:11211',         # 指定本机的11211端口为Memcache缓存服务器'OPTIONS':{'MAX_ENTRIES': 300,            # 最大缓存记录的数量(默认300)'CULL_FREQUENCY': 3,           # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
   },  }}

应用:


from django.views.decorators.cache import cache_page
在需要缓存的视图函数加上cache_page(seconds)装饰器

全站使用缓存(中间件):

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

局部缓存:

在模板中 {% load cache %}{% cache 2 'name' %}<h3>缓存:-----:{{ t }}</h3>
{% endcache %}

转载于:https://www.cnblogs.com/52-qq/p/8516661.html

Django-缓存的配置相关推荐

  1. django 缓存cache配置注意事项

    最近在个人项目优化的过程中,发现自己重新踩了一下缓存配置的坑,转念一想索性在博客上留存一份资料以备日后随时反查,也给各位正在学习或使用django的朋友提个醒. 配置缓存CACHES 关于配置这块,目 ...

  2. Django缓存设置

    由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...

  3. Django缓存机制

    Django缓存机制三个粒度:1 全站缓存 settings.py 全局配置文件用中间件:MIDDLEWARE = [# 'django.middleware.cache.UpdateCacheMid ...

  4. 中间件和Django缓存

    中间件定义: 中间件是一个.一个的管道,如果相对任何所有的通过Django的请求进行管理都需要自定义中间件 中间件可以对进来的请求和出去的请求进行控制 中间件是一类. 看下面的代码在settings里 ...

  5. (附源码)Django 主机硬件配置推荐系统 毕业设计 231155

    Django 主机硬件配置推荐系统 摘 要 近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用.简单的流程.便捷可靠的支付方式.快捷畅通的 ...

  6. Django 缓存 Cache

    文章目录 一.缓存 二.Django 缓存应用场景 三.Django 缓存的五种配置 0.通用配置(以redis为例) 1.开发调试 2.将缓存信息保存至文件 3.将缓存信息保存至内存 4.将缓存信息 ...

  7. Django缓存系统

    为什么要做django缓存? 在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面. 这会消耗大量的资源,当访问用户量非常大时,就要 ...

  8. Django 缓存----数据库缓存

    Django 缓存----数据库缓存 1. 在dajngo的setting那加入你想缓存的配置 CACHES = {#这是默认的,不能删除,个人试过会报没有这个默认配置的错'default': {'B ...

  9. Django缓存清理和缓存设置

    Django缓存清理和缓存设置 缓存清理 方法很多,提供两个思路 1.直接去清理用来存缓存的介质,如memcached.redis() 2.自己写程序脚本清空. 3.使用django-extensio ...

  10. django的settings配置详解

    1.介绍 BASE_DIR  默认值:os.path.dirname(os.path.dirname(os.path.abspath(__file__))). 这个是Django项目文件夹所在目录得绝 ...

最新文章

  1. Science背靠背: NLR受体介导植物抗病反应新机制
  2. Openstack 中的消息总线 AMQP
  3. Laravel Ioc容器singleton和bind方法的区别
  4. 用Go语言建立一个简单的区块链part6(2):交易(2)
  5. @Component 和 @Bean 的区别
  6. Proxy 简答实现 ViewModel 和 View
  7. Android ADB设备离线,无法发出命令
  8. fiddler监控手机请求
  9. oracle存储过程执行中输出日志文件 (转载学习)
  10. 网易互联网(网易严选)测试开发工程师
  11. C++ 重载操作符 <<实现模拟输出语句: cout << endl;
  12. Jenkins首次安装选择推荐插件时出现“: No such plugin: cloudbees-folder” 解决方案
  13. wkhtmltopdf乱码解决方案
  14. coredata理解
  15. RabbitMQ在windows10环境下安装步骤
  16. 使用Easyar在unity制作ar视频黑屏
  17. 电线电缆常用导电材料
  18. STM32的时钟安全系统(CSS)系统
  19. android mediaplayer播放sdcard音乐,Android 音乐播放MediaPlayer
  20. 【区块链108将】职品汇龚才春:通过区块链建立招聘生态,建立真实的应聘环境...

热门文章

  1. 针对 Windows Phone 7 上的独立存储的 Sterling
  2. 《OpenCV3编程入门》学习笔记7 图像变换(一)基于OpenCV的边缘检测
  3. python用django连接mysql_三分钟了解Django如何连接Mysql数据库
  4. 曙光服务器bios设置_浪潮服务器PM8060阵列卡,如何做热备盘?操作相对有点复杂...
  5. 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
  6. shell最大出现和连续出现次数_从 1 到 n 整数中 1 出现的次数
  7. linux用户空间 限制吗,在Linux中限制用户空间
  8. 利用PHP实现定时任务,利用php 实现定时任务简单实现 代码
  9. 大学计算机一级考试报名费,华北电力大学计算机等级考试报名
  10. MySQL面试题 | 附答案解析(四)