摘自:http://symphony.b3log.org/article/1376986299174
一、什么是缓存
1 .缓存是缓存内存的特殊存储子系统,用于复制常用数据以方便快速访问
2、位于速度差大两种硬件/软件间的、用于调整两者的数据传输速度差的结构都可以称为Cache
二、缓存的分类
1 .基于web APP应用的系统体系结构图
2 .为了加速访问,在系统架构的不同级别之间可以存在缓存
操作系统磁盘缓存-减少磁盘机器操作数据库缓存-减少文件系统I/o APP应用程序缓存-减少查询数据库的Web服务器缓存- APP应用程序服务器请求客户端浏览器
1、文件系统提供的磁盘缓存:操作系统将经常访问的文件内容放入内存中,由文件系统管理
2 .当APP应用程序通过文件系统访问磁盘文件时,操作系统从磁盘缓存中读取文件内容,加快了文件的读取速度
3、磁盘缓存由操作系统自动管理,一般不需要人手操作,但操作系统可以使用尽可能多的内存作为磁盘缓存,提高文件读取速度
4、特殊的APP应用对文件系统磁盘缓存有很高的要求,绕过文件系统磁盘缓存直接访问磁盘分区,自己实现磁盘
5、Cache战略
Oracle原始设备文件系统MySQL的innodb:innodb _ flush _ method=o _ direct 3358 www.Sina.com /
1、重要性
通常,存储在企业APP应用程序系统最中心数据库的一部分中的数据量通常会经常发生非常庞大的数据库查询操作。 此外,由于复杂的原因,数据库查询可能会导致非常频繁的磁盘I/O读取操作,CPU挂起并等待,导致数据库性能严重下降。 2、缓存策略
a、Query Cache
使用SQL作为键值查询结果集如果与缓存查询相关的表记录发生更改,则自动删除缓存并设置相应的查询缓存,将大大提高数据库性能。 如果Query Cache太大,内存会浪费。 MySQL : query _ cache _ size=128 MB,数据缓冲器
数据缓冲器是数据库数据内存中容器的数据缓冲器的命中率直接决定数据库的性能。 databuffer=2gMySQL的innodb buffer:innodb _ buffer _ pool _ size=2g MySQL推荐buffer
1 .目标缓存
o/r映射框架(例如,由Hibernate提供的透明访问、以精细粒度缓存数据库查询结果、不需要显式编程业务代码的缓存策略O/如果根据R Mapping框架的要求有针对性地设计了软件结构,则对象缓存可以很好地设计Web系统对数据库的访问请求,设计数据库结构并利用对象缓存对象缓存适合于Olling框架
缓存数据库查询的结果集。 Query Cache (如数据库)适用于耗时长、但时效性要求低的场景。 查询缓存和对象缓存的应用场景不同,在修改了与查询结果集相关的表记录之后,必须注意清理缓存3和页面缓存
a、作用
页面缓存技术不仅可以减轻数据库服务器的压力,而且可以通过减少APP应用服务器压力较大的页面缓存大大提高页面渲染速度,页面缓存的难点在于将过期的缓存b、分类
I、动态页面静态化
使用样板技术对访问过一次的动态页面生成静态html,同时修改页面链接,然后要求直接访问静态链接页面的动态页面静态化技术被广泛应用于互联网CMS/新闻类web APP应用中,但discccd 可以使用AJAX请求来弥补动态页静态化的缺点II、servlet缓存
适用于缓存通过URL访问返回的页面结果的粗粒度页面缓存。 例如,可以在新闻稿中检查权限的OScache提供了一个简单的servlet缓存(在web.xml中配置)。 您也可以自行编程实现servlet缓存III和页面内部缓存
缓存动态页面的部分碎片内容。 适用于已自定义但不经常更新的页面,如博客。 OSCache扩展JSP Tag以获取页面的部分缓存三、操作系统缓存
基于代理服务器模型的Web服务器端缓存技术(如squid/nginx )用于实现内容分发网络内容交付网络(CDN ),不需要在国内主要门户上编程
使用AJAX调用时,在浏览器端缓存数据库仅适用于使用AJAX技术的页面,除非您离开当前页面或更新当前页面。
:https://www.cnblogs.com/wh-转载于沉稳之星/p/4334150.html