缓存提升性能:

  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详解相关推荐

  1. mysql数据库性能优化—my.cnf详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

  2. Mysql 性能优化神器Explain详解

    文章目录 Explain的作用 博文背景 Explain 使用方法 Explain之ID说明 1. ID值相同 2.ID值不同 3.ID值相同,ID值不同共存 Explain的select_type详 ...

  3. 时间段优化oracle,九大Oracle性能优化基本方法详解

    51CTO数据库频道向您推荐<Oracle数据库调试与性能优化>专题,以便于您更好的理解本文. Oracle性能优化基本方法包括一下几个步骤,包括: 1)设立合理的Oracle性能优化目标 ...

  4. tuned-adm性能优化的配置文件详解

    tuned-adm 是一个命令行工具,提供一些不同配置文件以提高一些特定用例性能 tuned-adm工具使用方法 tuned-adm list                        # 列出所 ...

  5. django 性能优化_优化Django管理员

    django 性能优化 Managing data from the Django administration interface should be fast and easy, especial ...

  6. Android App优化之ANR详解

    引言 背景:Android App优化, 要怎么做? Android App优化之性能分析工具 Android App优化之提升你的App启动速度之理论基础 Android App优化之提升你的App ...

  7. HTTP缓存机制详解

    HTTP缓存机制详解 一. 前言 二. 缓存的介绍 什么是缓存? 为什么要使用缓存? 1. 减少冗余的数据传输 2. 缓解带宽瓶颈 3. 破坏瞬间拥塞 4. 降低距离时延 三. 缓存有效性 命中和未命 ...

  8. Supermap iDesktop模型生成缓存参数详解

    如今Supermap iDesktop已经更新到11i了,在场景缓存上新增了部分功能,很多小伙伴都苦于各个参数设置上没有详细的介绍,并且在生成场景缓存时易奔溃.接下来,小编就整理了Supermap i ...

  9. 操作系统:基于页面置换算法的缓存原理详解(下)

    概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...

最新文章

  1. 访问一个HTTPS的网站的大致流程
  2. spss回归分析_回归分析中的简单斜率检验:用SPSS或jamovi实现
  3. orm java_Java 8 Friday:不再需要ORM
  4. 详解html结构之间的各个关系,层级关系(以列表为例)
  5. 数据结构与算法--7.树的基础知识
  6. python 计算数字位数_Python 统计位数为偶数的数字的代码
  7. tomcat 之 tomcat实例配置
  8. OK335xS psplash Screen 移植
  9. 一致性算法中的节点下限(转)
  10. 【洛谷试炼场】普及练习场——排序
  11. KEIL编译时Warning: C3008W: splitting LDM/STM has no benefit的消除
  12. 信息安全意识主题分享-数据安全
  13. linux 查看文件最后几行
  14. 精确算法、启发式算法、元启发式算法及增长方式浅析
  15. 基于劈窗算法的地表温度反演算法
  16. 创意人像海报故障艺术海报教程故障艺术海报怎么做
  17. 牛逼!解魔方神器GitHub开源了!
  18. python3, 计算两个矩形框是否重叠,并计算重叠度
  19. 滥用线程,导致线上线程池被撑爆的一次意外
  20. js实现随机头像聊天框无外链

热门文章

  1. 手动修改oracle scn号,SCN(系统改变号)
  2. currency类型_让我们一起走进VBA基本语法的世界,先了解一下数据类型有哪些
  3. mysql 指定日期条件求和_如何在mysql中按每个日期对字段进行求和-问答-阿里云开发者社区-阿里云...
  4. IC/FPGA校招笔试题分析(三)
  5. Win 10 源码一览:0.5T 代码、400 万文件、50 万文件夹
  6. Istio Pilot源码浅析
  7. JavaScript脚本中 getElementById 返回值总是为空
  8. 《Java EE核心框架实战》—— 2.3 resultMap 标签
  9. 进阶之初探nodeJS
  10. Zookeeper的安装配置及基本开发