请问什么叫做缓存?

缓存是架构设计非常重要的一个环节,是架构师必须要掌握的技能,希望我的分享能够给大家带来帮助。01.什么是缓存存储在计算机上一个原始数据复制集,以便于访问。 --维基百科缓存是系统快速响应中的一种关键技术,是一组被保存起来以备将来使用的东西,介于应用开发和系统开发之间,是产品经理们经常顾及不到的地方,也是技术架构设计中的非功能性约束。

我们可以这样理解,把你经常用的东西copy一份放在离你最近的地方,下次你用就更快了。02.空间换时间的艺术缓存是通过存储(空间)的消耗,以提升访问性能(获得时间)的艺术。在军事领域的二个案例:1)二战中,德国打俄罗斯,俄罗斯就得益于自己的土地辽阔,空间大,战略纵深帮了大忙,容易打持久战,不可能被迅速打败。

而德国时间上拖不起,不能速胜,随着时间推移,全球形式瞬息万变,自然气候也不允许德国久战,空间换时间,时间带来变数。2)白崇禧,国民政府指挥抗日战争的重要将领,研究了拿破仑入侵俄国的战争,提出了“积小胜为大胜,以空间换时间,以游击战辅助正规战,与日本人作长期抗战”的重要军事指导思想,密令张自忠将军于日军侵占华北初期,与日军周旋,缓解敌军攻势,并且争取后方整补时间,以拖延战术换取国民党政府有充足时间准备全面战争。

在商业领域,比如通过在全国各地开连锁店,可以将自己的产品和商业模式迅速在全国复制推广,对与老百姓,可以就近很方便的享受到体验一致的产品和服务质量。在生活中,当我们生活在一线城市,如果家住通州,市区通勤上下班会达到三四个小时,减少通勤时间最简单的办法就是在公司附近租房子,能够极大的压缩通勤的时间。所以说,缓存的思想无处不在。

03.为何要用缓存在“用户体验”至上的互联网时代,唯有提升访问性能才是王道。当客户访问页面或是交易加载时间每延迟一秒,继续浏览、转化率、满意度都会下降,尤其是满意度,会影响到网站的口碑。04.缓存的设计架构我们在搭建系统架构的时候,为了提升访问性能,会在系统的各个层面考虑使用缓存技术:当客户使用浏览器访问web应用的时候,浏览器会缓存页面的静态资源,DNS会缓存IP地址,再次访问的时候,能够加速网址的解析和页面的访问性能;通过CDN网络,使得客户能够就近访问热点资源,而不是到源站访问资源,避免源站的网络拥堵;Web应用会使用本地缓存加速进程内的数据访问性能;为避免数据库访问的性能瓶颈,使用分布式缓存技术,将查询热点数据缓存到内存中,供应用程序访问,同时,数据库本身也具备缓存机制提升访问效率。

如下图所示 客户端缓存当我们通过客户端的浏览器首次打开一个页面的时候,通常响应速度要比第二次打开要慢,是因为首次打开页面的时候,浏览器会将 HTML、CSS、JavaScript、图片等静态资源进行缓存,避免了再次访问下载资源的时间开销。DNS缓存DNS缓存是指在正常访问ip之后,系统会将这个ip存储起来,当再次访问的时候,系统就会直接把本地的DNS缓存提取显示,等于是加速了网址的解析。

CDN网络CDN是构建在互联网上的内容分发网络,依靠部署在各地边缘节点的缓存服务器,通过中心节点将源站的热点静态资源推送的边缘节点,使用户就近获取所需内容,降低网络拥塞,大大提高用户的访问响应速度。反向代理缓存反向代理位于服务器之前,请求与响应都需要经过反向代理。通过将数据缓存在反向代理,在用户请求反向代理时就可以直接使用缓存进行响应。

应用缓存将数据缓存在服务器本地内存中,服务器代码可以直接读取本地内存中的缓存,速度非常快。分布式缓存使用 Redis、Memcache 等分布式缓存将数据缓存在分布式缓存系统中,比起直接从数据库读取数据,访问性能有数量级的提升。数据库缓存SQL


文章TAG:详解web缓存  什么是web缓存  详解  web  缓存  
下一篇