版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、缓存技术介绍2014年1月目录2. 应用程序缓存1. 系统响应3. Web服务器缓存4. 客户端浏览器缓存系统响应从用户的角度,通常通过访问一系列系统页面,从等待响应的时间来评估系统性能。响应快的系统给用户带来良好的体验,让用户专注于页面内容和业务操作而完全忘记系统的快慢问题。而如果等待的时间过长?吐槽、抱怨、投诉系统响应系统响应数据在网络上传输的时间。服务器处理请求并生成响应数据的时间浏览器本地计算和渲染的时间系统响应找到瓶颈,采取相应的措施增加硬件资源(增加网络带宽、提高服务器配置)减少网页HTTP请求服务端业务逻辑优化集群负载均衡数据库优化网页静态化动态缓存数据缓存等待提示系统响应把需要
2、花费昂贵开销的计算结果保存起来,在以后需要的时候直接取出,避免重复的计算,从而提高系统响应速度。系统响应操作系统磁盘缓存 : 减少磁盘机械操作数据库缓存 : 减少文件系统I/O应用程序缓存 : 减少对数据库的查询 Web服务器缓存 : 减少应用服务器请求客户端浏览器缓存 : 减少对网站的访问目录2. 应用程序缓存1. 系统响应3. Web服务器缓存4. 客户端浏览器缓存应用程序缓存PHP、JSP、ASP、ASPX等相比静态网页,显示的内容随着时间、环境或者数据操作的结果发生改变,呈现给用户动态可变的内容当用户请求时服务端处理并响应生成的html静态内容在服务器端的处理增加了用户等待的时间应用程
3、序缓存以文件的形式缓存部分网页内容MVC模式将视图分离,使得页面缓存更加丰富灵活Velocity、freemarker页面模板应用程序缓存以文件的形式缓存完整的网页内容用户直接访问html静态页面为了方便查找,大量的文件缓存以目录分级的形式存放应用程序缓存动态内容引入缓存,在一定程度上避免了动态内容不必要的重复计算,缩短的请求响应时间动态内容的目的在于提供变化的内容,所以缓存不可能长期有效动态内容缓存机制必须判断缓存何时过期,以及何时需要生成新的缓存在数据更新时重新生成静态化内容定时重新生成静态化内容应用程序缓存以文件的形式缓存在加载和过期检查的时候都存在磁盘I/O在内存允许的情况下,可以考虑
4、将缓存写入内存应用程序缓存从数据操作上来说,企业级应用无非是对数据的增、删改、查,因此服务端很大部分的工作都是对数据库记录的操作O/R Mapping框架细粒度缓存数据库查询结果,表记录级别对数据库记录对象的缓存可以减少数据库操作,提升系统性能应用程序缓存事务范围:缓存只能被当前事务访问进程范围:缓存被进程内的所有事务共享集群范围:缓存被一台或多台机器共享如果在事务范围的缓存中没有查到相应的数据,还可以到进程范围或集群范围的缓存内查询,如果还是没有查到,那么只有到数据库中查询从集群缓存中查找未必比从数据库查找快应用程序缓存事务范围的缓存ORM框架通常必须实现一级缓存应用程序缓存在不改变代码的情
5、况下极大提升web应用性能可能出现并发问题(跨事务),因此需采用相应的并发访问策略查询时先从一级缓存中查找对象,如果没有找到则从二级缓存中查找,如果 没有找到则从数据库中查找删除、更新、添加时同步更新二级缓存应用程序缓存对数据库查询结果进行缓存(缓存entity和id)自动清理过期数据应用程序缓存将常用对象放入全局的Hashtable应用程序缓存JCache规范(JSR 107)定义了一种对Java对象临时在内存中进行缓存的方法,包括对象的创建、共享访问、假脱机(spooling)、失效、各JVM的一致性等Jcache可能会成为JavaEE 8中的一个规范/
6、en/jsr/detail?id=107应用程序缓存JavaEE缓存框架缓存任意Java对象通过JSP标签缓存部分页面缓存过滤器(Last-Modified)内存和磁盘缓存支持集群应用程序缓存纯Java的快速、轻量级缓存框架Hibernate默认的CacheProvider内存和磁盘缓存支持集群应用程序缓存集群复制支持事务提供两种缓存方式:核心缓存和POJO缓存核心缓存:K/V方式POJO缓存:被放入POJO缓存的object的属性发生改变时自动更新POJO缓存应用程序缓存高性能的分布式内存对象缓存系统内存缓存服务器进程用C编写,客户端可以用任意语言编写Memcached服务器端没有分布式功能
7、,各个memcached之间不通讯分布式取决于客户端的实现(C/C+、java、php、python、lua、mysql、postgreSQL等)Java客户端:spymemcached、Java memcached client、xmemcached等应用程序缓存将数据放在内存中直接操作的数据库Java内存数据库:HSQLDB(Hypersonic SQL)、derby、H2DataBase目录2. 应用程序缓存1. 系统响应3. Web服务器缓存4. 客户端浏览器缓存Web服务器缓存Web服务器缓存接收HTTP请求URL映射:解析url并映射到实际的内容或资源读取实际的内容或资源作为响应内
8、容缓存响应内容缓存文件描述符Web服务器缓存Web服务器缓存Web服务器缓存老牌开源HTTP服务器mod_cache:基于uri键动态内容缓存mod_disk_cache:硬盘缓存mod_mem_cache:内存缓存(缓存打开的文件描述符、在堆上缓存对象)mod_file_cache:文件缓存Web服务器缓存轻量级web代理和反向搭理服务器IMAP/POP3/SMTP 代理服务器处理高并发能力比apache优越ngx_http_proxy_module模块,proxy_cache支持缓存ngx_http_memcached_module模块,基于memcached缓存Web服务器缓存高性能的开
9、源HTTP加速器利用虚拟内存方式,io性能好基于内存缓存目录2. 应用程序缓存1. 系统响应3. Web服务器缓存4. 客户端浏览器缓存浏览器缓存浏览器是实现了HTTP协议的User-Agent通过浏览器访问网页时,浏览器从服务器下载html、js、css、图片等内容浏览器可将网页内容缓存在本地HTTP缓存可以减少大量的HTTP请求缓存协商浏览器缓存服务端在响应头中增加Last-Modified标记,标识响应内容最后修改时间浏览器请求刷新时,浏览器在请求头中增加 If-Modified-Since标记服务端对比Last-Modified和If-Modified-Since的日期,如果没有修改,
10、则返回304 Not Modified浏览器缓存服务端在响应头中增加ETag标记,Etag的值是服务器端为响应内容生成的一个标记(用文件大小加最后修改时间生成的哈希值)浏览器请求刷新时,浏览器在请求头中增加If-Non-Match标记服务端比较最新内容的哈希值和If-Non-Match 值,如果Etag的值一样,则返回304 Not Modified浏览器缓存服务端在响应头中增加Expires标记,指定内容的过期时间浏览器请求刷新时,将本地时间和Expires过期时间进行比对,如果没有过期,则不重新加载本地时间和服务器时间不一致时,会影响到本地缓存的有效检查浏览器缓存服务端在响应头中增加Cache-Control:max-age=标记,标识该html的最大有效期当浏览器请求刷新时,浏览器计算本地当前时间和响应内容Date时间差,如果在max-age范围内,则不重新加载no-cache、no-storepost、ssl浏览器缓存Request For Comments(RFC请求评议),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。/RFC-26
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小儿偏瘫物理治疗方案
- 2024版无人机研发与租赁合同3篇
- 管理会计的短期经营决策
- 《长难句的翻译》课件
- 2024年度软件开发服务合同详范
- 盾构工程项目2024年度临时设施建设分包合同2篇
- 2024年度汽车租赁与二手交易合同2篇
- 基于二零二四年度新能源开发与应用的合作协议
- 如何做微课课件
- 《交换机基本原理》课件
- 初中数学优化作业设计实施方案
- 业绩对赌协议合同 公司业绩对赌协议
- 审计专业职业生涯规划总结报告
- 水稻碳足迹评价技术指南
- 工会跳棋活动方案
- 新高考英语读后续写技巧与训练:助人类20篇
- 规范开展学术活动管理制度
- 建设工程监理职业生涯规划
- 冻酸奶市场洞察报告
- 胎儿肛门闭锁个案护理
- 成都YC公司创业计划书
评论
0/150
提交评论