场景
技术说明
如今,互联网应用规模不断扩大,应用不断增多,网络已经深入到我们生活的各个方面,给我们的日常生活带来极大方便,随着信息系统的业务扩展,网站用户增加,历史数据不断积累,业务不断增长,系统的响应速度、请求的处理能力开始下降,CPU和磁盘IO处理能力会成为瓶颈。
如果在有限的硬件投入前提下,提高系统性能就成了主要解决问题手段,为了提供高性能的web服务,可采用包括负载均衡、页面静态化、数据库集群、缓存等多种技术方案,其中,缓存方案是目前主流的性能优化方式,对于网站来说,有很多特定信息系统的请求都是重复冗余的,我们的系统经常在做重复的计算和传输着相同的内容。这也就意味着在有限的计算资源条件下,可通过缓存技术,大幅提高请求处理能力以及处理速度。
企业服务架构图
缓存介绍
缓存,又称加速器,用于加速运行速度较快的设备与较慢设备之间的通信。基于程序的运行具有局部性特征其能实现加速的功能:
缓存有效与否,是通过缓存命中率来衡量的。缓存命中,意味着在请求某资源时,在缓存中找到该资源,并响应给客户端。
缓存命中率的计算方式:hits/(hits+misses) (0-1)(命中的/命中的+没有命中的)
缓存是把之前访问到的数据及其周边的数据放置于具有更快速度的、效率更高的设备中来完成加速。使用缓存之后, 资源的请求与响应过程由client–>server–>client改变为client–>cache[–>server]–>client。若在缓存中没有查找到相应的资源,将会由缓存向server请求该资源,这一过程,会造成额外的开销,若换成命中率过低,则会造成资源的浪费。因此,提高缓存的命中率是必然的。
缓存系统的关键点
空间局部性:一个数据被访问时,其周边的数据也有可能被访问到(比如:nginx定义一个缓存,首先要定义一个缓存路径和空间大小,当缓存空间满了,就会使用lru算法(最近最少使用算法),将最近最少访问的缓存数据给清理掉,那么剩下的就是访问最多的数据,也就是热点数据)
缓存空间耗尽:LRU,最近最少使用;(Least recently used,最近最少使用)
缓存过期:到了缓存时间后失效(失效之后不一定会被删除,要看你怎样定义)
资源缓存:page cache ,static cache;
浏览器的缓存机制