Django-缓存的配置
缓存的介绍
在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.缓存是将一些常用的数据保存内存或者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-缓存的配置相关推荐
- django 缓存cache配置注意事项
最近在个人项目优化的过程中,发现自己重新踩了一下缓存配置的坑,转念一想索性在博客上留存一份资料以备日后随时反查,也给各位正在学习或使用django的朋友提个醒. 配置缓存CACHES 关于配置这块,目 ...
- Django缓存设置
由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...
- Django缓存机制
Django缓存机制三个粒度:1 全站缓存 settings.py 全局配置文件用中间件:MIDDLEWARE = [# 'django.middleware.cache.UpdateCacheMid ...
- 中间件和Django缓存
中间件定义: 中间件是一个.一个的管道,如果相对任何所有的通过Django的请求进行管理都需要自定义中间件 中间件可以对进来的请求和出去的请求进行控制 中间件是一类. 看下面的代码在settings里 ...
- (附源码)Django 主机硬件配置推荐系统 毕业设计 231155
Django 主机硬件配置推荐系统 摘 要 近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用.简单的流程.便捷可靠的支付方式.快捷畅通的 ...
- Django 缓存 Cache
文章目录 一.缓存 二.Django 缓存应用场景 三.Django 缓存的五种配置 0.通用配置(以redis为例) 1.开发调试 2.将缓存信息保存至文件 3.将缓存信息保存至内存 4.将缓存信息 ...
- Django缓存系统
为什么要做django缓存? 在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面. 这会消耗大量的资源,当访问用户量非常大时,就要 ...
- Django 缓存----数据库缓存
Django 缓存----数据库缓存 1. 在dajngo的setting那加入你想缓存的配置 CACHES = {#这是默认的,不能删除,个人试过会报没有这个默认配置的错'default': {'B ...
- Django缓存清理和缓存设置
Django缓存清理和缓存设置 缓存清理 方法很多,提供两个思路 1.直接去清理用来存缓存的介质,如memcached.redis() 2.自己写程序脚本清空. 3.使用django-extensio ...
- django的settings配置详解
1.介绍 BASE_DIR 默认值:os.path.dirname(os.path.dirname(os.path.abspath(__file__))). 这个是Django项目文件夹所在目录得绝 ...
最新文章
- Science背靠背: NLR受体介导植物抗病反应新机制
- Openstack 中的消息总线 AMQP
- Laravel Ioc容器singleton和bind方法的区别
- 用Go语言建立一个简单的区块链part6(2):交易(2)
- @Component 和 @Bean 的区别
- Proxy 简答实现 ViewModel 和 View
- Android ADB设备离线,无法发出命令
- fiddler监控手机请求
- oracle存储过程执行中输出日志文件 (转载学习)
- 网易互联网(网易严选)测试开发工程师
- C++ 重载操作符 <<实现模拟输出语句: cout << endl;
- Jenkins首次安装选择推荐插件时出现“: No such plugin: cloudbees-folder” 解决方案
- wkhtmltopdf乱码解决方案
- coredata理解
- RabbitMQ在windows10环境下安装步骤
- 使用Easyar在unity制作ar视频黑屏
- 电线电缆常用导电材料
- STM32的时钟安全系统(CSS)系统
- android mediaplayer播放sdcard音乐,Android 音乐播放MediaPlayer
- 【区块链108将】职品汇龚才春:通过区块链建立招聘生态,建立真实的应聘环境...
热门文章
- 针对 Windows Phone 7 上的独立存储的 Sterling
- 《OpenCV3编程入门》学习笔记7 图像变换(一)基于OpenCV的边缘检测
- python用django连接mysql_三分钟了解Django如何连接Mysql数据库
- 曙光服务器bios设置_浪潮服务器PM8060阵列卡,如何做热备盘?操作相对有点复杂...
- 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
- shell最大出现和连续出现次数_从 1 到 n 整数中 1 出现的次数
- linux用户空间 限制吗,在Linux中限制用户空间
- 利用PHP实现定时任务,利用php 实现定时任务简单实现 代码
- 大学计算机一级考试报名费,华北电力大学计算机等级考试报名
- MySQL面试题 | 附答案解析(四)