电脑把最常用的文件从存储器里提出来临时放在缓存里以加快运行。因为缓存往往使用的是ram,电脑里大的缓存就是内存条了,最快的是cpu上镶的l1和l2缓存,显卡的显存是给gpu用的缓存,硬盘上也有16m或者32m的缓存。千万不能把缓存理解成一个东西,它是一种处理方式的统称!
页面缓存用于服务器上的静态和动态对象的请求。请求失败叫做缓存未命中,原因可能是缓存满了,也可能是缓存未满,但请求的频率较低或最近重启过。未命中缓存的请求会被直接传递给服务器,并且用该请求回答并填充页面缓存,从而替换缓存中最近很少使用的数据。
页面缓存:每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了
网站中页面缓存的应用场景:
1、对耗时的查询进行缓存,例如产品列表页的查询。
2、可以缓存整个页面的html,提高访问响应能力;
3、针对局部页面元素进行缓存;
4、和上下文相关的用户数据,例如用户从订单埴写页进入到订单成功页,或者是从产品列表页点击详细产品进行预订时的订单填写页,此时这两个页面之间都需要传递大量的相关数值,我们可以把所有的数值封装在一个类中,然后通过页面缓存进行通信。
5、对复杂数据的结果进行缓存,例如一个查询需要结合多个数据集,然后根据这些数据集进行相应的运算,即使每个子集查询有缓存,但还是需要额外的运算,这种情况可以考虑页面缓存计算后的结果
一、在web服务器处理请求前实现页面缓存
在web服务器处理请求前实现页面缓存,这样建站系统就会得到很大的可扩展性。生成动态内容的web服务器工作量会大大减少,因为计算过的结果在此之前的时间已被缓存了。提供静态内容的web服务器不需要查询的内容,可以少用一些缓存空间。因此,对于静态网站来说,缓存的作用就不那么明显了,因为输出内容本身就没有太大的计算量和负担。
二、要实现页面缓存必须使用正确的http头,确保对内容和查询结果进行大化的缓存,并且网站建设时避免通过meta标签刷新页面。
三、尽可能加入rfc2616标准中的另一个http响应头参数,从而大化内容的可缓存性。
这个新的参数是etag,也就是实体标签,目的是配合if-none-match有条件地从服务器获得请求。etag是由服务器端的资源改变了,那么服务器会为它分配一个新的etag。假设能被浏览器正确地支持,对象和它的etag标签就会被浏览器缓存,之后浏览器向web服务器发送的if-none-match请求都会包含该标签。如果标签匹配,服务器会用http 304 not modified进行响应。如果该标签与服务器上的不一致,服务器会发送更新过的对象以及与之相关的etag。
在大多数建站系统中etag是可选的,但如果要确保在任何特定的页面或对象的整个网络传输中,页面缓存和代理缓存具有更大的可缓存性,强烈推荐使用etag。最后再次建议所有
成都网站建设人员都重视页面缓存,利用好缓存将节省大量的硬件投入成本。
影响页面缓存命中率的因素。
1:数据时实性,每个业务系统都对自己的数据有相应的要求,有些数据的实时性非常强,像每日的股票信息,这种情况如果设置了缓存,缓存的命中率会特别低。
2:缓存粒度问题,一般来说是页面缓存的跨度太大,即此时的key值包含的条件太多,会出现缓存命中率特别低的情况。
四、提高页面缓存命中率的方法:
1:增大存储介质的容量;
2:对非常热点的数据进行捕捉,可以采用实时更新缓存的方式来平衡缓存与实时性的问题,例如可以单独开启一个后台服务来定时做更新缓存的工作。
3:调整缓存key值的算法,尽量保证缓存key的细粒度,key-value就是很好的细粒度例子。
4:根据业务调整页面缓存的过期策略。
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联