[计算机]缓存详解

[计算机]缓存详解

ID:25731035

大小:67.18 KB

页数:5页

时间:2018-11-22

[计算机]缓存详解_第1页
[计算机]缓存详解_第2页
[计算机]缓存详解_第3页
[计算机]缓存详解_第4页
[计算机]缓存详解_第5页
资源描述:

《[计算机]缓存详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、什么是缓存?缓存就是用来避免频繁的到主存储器(一般来说可能是数据库,结构化的磁盘文件,远程网络接口,程序接口等等提供数据返回的)获取数据而建立的一个存取更快的临时存储器(缓存)。一般来说,缓存比主存储器更小(不一定,也可能是存储的数据结构不一样,但是存取速度非常快),但是存储的容量也比较小,但是存取速度非常快。缓存的作用缓存一般用来1.存储频繁访问的数据1.临时存储耗时的计算结果1.内存缓存减少磁盘IO缓存类型在WEB开发中,缓存可以分为:数据库端缓存这个可以用以“空间换时间”来说。比如建一个表来存储另外一个表某个类型的数据的总条数,在每次更新数据的时候同

2、时更新数据表和统计条数的表。在需要获取某个类型的数据的条数的时候,就不需要selectcount去查询,直接查询统计表就可以了,这样可以提高查询的速度和数据库的性能。应用层缓存·应用层缓存这块跟开发人员关系最大,也是平时经常接触的。1.缓存数据库的查询结果,减少数据的压力。这个在大型网站是必须做的。1.缓存磁盘文件的数据。比如常用的数据可以放到内存,不用每次都去读取磁盘,特别是密集计算的程序,比如中文分词的词库。1.缓存某个耗时的计算操作,比如数据统计。·应用层缓存的架构也可以分几种:1.嵌入式,也就是缓存和应用在同一个机器。比如单机的文件缓存,java中

3、用hashMap来缓存数据等等。这种缓存速度快,没有网络消耗。1.分布式缓存,把缓存的数据独立到不同的机器,通过网络来请求数据,比如常用的memcache就是这一类。分布式缓存一般可以分为几种:1.按应用切分数据到不同的缓存服务器,这是一种比较简单和实用的方式。1.按照某种规则(hash,路由等等)把数据存储到不同的缓存服务器1.代理模式,应用在获取数据的时候都由代理透明的处理,缓存机制有代理服务器来处理前端缓存我们这里说的前端缓存可以理解为一般使用的cdn技术,利用squid等做前端缓冲技术,主要还是针对静态文件类型,比如图片,css,js,html等静

4、态文件。客户端缓存浏览器端的缓存,可以让用户请求一次之后,下一次不在从服务器端请求数据,直接从本地缓存读取,可以减轻服务器负担也可以加快用户的访问速度。缓存的更新和过期我们这几只讲应用层的缓存。在应用层的缓存由于应经有新的数据加入,数据的修改,数据的删除等等操作,而在某些时间,我们需要这些操作及时的生效(由于用了缓存,可能会导致修改后缓存没有更新,而页面也没有变化),所以出现缓存的更新和过期的概念。缓存的过期缓存的过期包含1.时间过期我们在缓存数据的时候我们可以指定数据缓存的最大时间,如果超过这个时间,我们就认为缓存是失效的。1.基于规则的过期我们在缓存中

5、存储了某些数据来标明数据的版本。比如存取的时间,更新的时间,数据的版本信息等等。然后比较这些信息是否有变化来判断是否过期。缓存的更新1.被动当缓存失效的时候我们的应用程序重新从主存储器中取数据,然后重新放回缓存中。1.主动当数据一更新的时候,我们的应用主动的去更新我们的缓存内容。1.被动和主动结合(基于版本)当数据以更新的时候,我们更新一个数据被更新的标志。然后根据上面讲到的“基于规则的过期”来更新数据。缓存工具介绍数据库端1普通表,利用普通表来缓存一些统计数据。2内存表应用层端比较常见的应用层分布式缓存容器,Memcache、共享文件服务器、Memcac

6、heDb、TokyoTyrant。php里面也有比如x-cache,apc等的基于进程的缓存,这种缓存比分布式缓存速度快,但是限于跟应用的一个机器。java实现的缓存也比较多,比如oscache,jcache,ehcached等等。前端前端比较常用的就是squid,VarnishCache,ncache等等。Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸VerdensGang(vg.no)使用3台Varnish代替了原来的12台squid,性能比以前更好。客户端客户端缓存依赖于浏览器的实现,目前一般的浏览器都实现了基于http都信息来缓

7、存相应的文件。如何评价缓存的好坏速度当然,我们使用缓存的目的之一就是要提高我们应用的速度。如果使用缓存后速度更慢那就没有缓存的必要了。取缓存的速度应当是非常快的,因为缓存的工作仅仅是取出一个曾经存储好的数据。所以影响缓存速度的因素可能跟缓存所才采用的存储方式有关系,还有可能印象速度的就是分布式缓存的网络消耗,同样,缓存服务器在并发很大的时候也有可能不堪重负出现瓶颈,变得缓慢。比如目前凤凰论坛使用的帖子缓存的响应时间在亚毫秒级,也就是还不足1ms的响应时间,这个速度是相当快的。及时性我们使用缓存的重要一点就是对我们的数据的更新需要缓存也及时的更新。这点非常重

8、要,关系到页面显示的正确性,用户体验等。命中率命中率直接关系到缓存

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。