django性能优化缓存view详解
缓存提升性能:
1、通常的view会去数据库端执行相关的查询然后交由template渲染、数据库访问通常就是性能的瓶颈所在。
2、由于许多数据要很久才会变一次、两次连续的数据库访问通常返回的数据是一样的;更进一步数据是一样的、
那就是说返回的response内容就是一样的。
3、如果能直接把response缓存起来、减少对数据库的访问以提升性能、如果直接把response缓存在内存中、那么
view性能的提升会更高。
怎么做:
由上面的内容可能知道、要解决缓存访问,可以分解成两个更小的问题 a:缓存谁 & b缓存在哪里?
缓存在哪里:
这个可能通过配置来说明、缓存的内容是保存在内容中、还是保存在文件中 ... ...
缓存谁:
把想缓存的对象打上标记就行、这样它就和普通的对象区分开了
以下用一个例子来说明缓存在django中的使用
配置缓存对象的保存位置:
在项目的settings.py文件中增加如下内容
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',} }
我打算把对象缓存到内存里
给view打上标记说明这个view是要缓存的
@cache_page(60 * 15, cache="default") def index(request):print('this index ...')return render(request,'learning/index.html')
@cache_page(60*15,cache="default") 的意思就是说缓存生命周期是15分钟、缓存中内存中(我们default配置的就是在内存中)
查看效果:
1、第一次访问
在server端可以看到如下日志
this index ... [22/Mar/2018 12:59:01] "GET /learning/ HTTP/1.1" 200 2218 [22/Mar/2018 12:59:01] "GET /static/favicon.ico HTTP/1.1" 200 67646
可以看到有打印“this index ...”说明这个view是有被执行的
2、第二次访问页面、server端可以看到如下日志
this index ... [22/Mar/2018 12:59:01] "GET /learning/ HTTP/1.1" 200 2218 [22/Mar/2018 12:59:01] "GET /static/favicon.ico HTTP/1.1" 200 67646 [22/Mar/2018 12:59:13] "GET /learning/ HTTP/1.1" 200 2218 [22/Mar/2018 12:59:13] "GET /static/favicon.ico HTTP/1.1" 200 67646
这一次并没有打印"this index ..." 说明view并没有执行、django直接把之前执行view的结果返回给了浏览器。
----------------------------------------------------------------------------------------------
django性能优化缓存view详解相关推荐
- mysql数据库性能优化—my.cnf详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- Mysql 性能优化神器Explain详解
文章目录 Explain的作用 博文背景 Explain 使用方法 Explain之ID说明 1. ID值相同 2.ID值不同 3.ID值相同,ID值不同共存 Explain的select_type详 ...
- 时间段优化oracle,九大Oracle性能优化基本方法详解
51CTO数据库频道向您推荐<Oracle数据库调试与性能优化>专题,以便于您更好的理解本文. Oracle性能优化基本方法包括一下几个步骤,包括: 1)设立合理的Oracle性能优化目标 ...
- tuned-adm性能优化的配置文件详解
tuned-adm 是一个命令行工具,提供一些不同配置文件以提高一些特定用例性能 tuned-adm工具使用方法 tuned-adm list # 列出所 ...
- django 性能优化_优化Django管理员
django 性能优化 Managing data from the Django administration interface should be fast and easy, especial ...
- Android App优化之ANR详解
引言 背景:Android App优化, 要怎么做? Android App优化之性能分析工具 Android App优化之提升你的App启动速度之理论基础 Android App优化之提升你的App ...
- HTTP缓存机制详解
HTTP缓存机制详解 一. 前言 二. 缓存的介绍 什么是缓存? 为什么要使用缓存? 1. 减少冗余的数据传输 2. 缓解带宽瓶颈 3. 破坏瞬间拥塞 4. 降低距离时延 三. 缓存有效性 命中和未命 ...
- Supermap iDesktop模型生成缓存参数详解
如今Supermap iDesktop已经更新到11i了,在场景缓存上新增了部分功能,很多小伙伴都苦于各个参数设置上没有详细的介绍,并且在生成场景缓存时易奔溃.接下来,小编就整理了Supermap i ...
- 操作系统:基于页面置换算法的缓存原理详解(下)
概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...
最新文章
- 访问一个HTTPS的网站的大致流程
- spss回归分析_回归分析中的简单斜率检验:用SPSS或jamovi实现
- orm java_Java 8 Friday:不再需要ORM
- 详解html结构之间的各个关系,层级关系(以列表为例)
- 数据结构与算法--7.树的基础知识
- python 计算数字位数_Python 统计位数为偶数的数字的代码
- tomcat 之 tomcat实例配置
- OK335xS psplash Screen 移植
- 一致性算法中的节点下限(转)
- 【洛谷试炼场】普及练习场——排序
- KEIL编译时Warning: C3008W: splitting LDM/STM has no benefit的消除
- 信息安全意识主题分享-数据安全
- linux 查看文件最后几行
- 精确算法、启发式算法、元启发式算法及增长方式浅析
- 基于劈窗算法的地表温度反演算法
- 创意人像海报故障艺术海报教程故障艺术海报怎么做
- 牛逼!解魔方神器GitHub开源了!
- python3, 计算两个矩形框是否重叠,并计算重叠度
- 滥用线程,导致线上线程池被撑爆的一次意外
- js实现随机头像聊天框无外链
热门文章
- 手动修改oracle scn号,SCN(系统改变号)
- currency类型_让我们一起走进VBA基本语法的世界,先了解一下数据类型有哪些
- mysql 指定日期条件求和_如何在mysql中按每个日期对字段进行求和-问答-阿里云开发者社区-阿里云...
- IC/FPGA校招笔试题分析(三)
- Win 10 源码一览:0.5T 代码、400 万文件、50 万文件夹
- Istio Pilot源码浅析
- JavaScript脚本中 getElementById 返回值总是为空
- 《Java EE核心框架实战》—— 2.3 resultMap 标签
- 进阶之初探nodeJS
- Zookeeper的安装配置及基本开发