分布式系统关注点(16)——360°全方位解读「缓存」

本文深入探讨了「缓存」的作用,包括预读取、延迟写,以及在浏览器缓存、CDN缓存、网关(代理)缓存、进程内缓存、进程外缓存和数据库缓存等多个层面的应用。文章指出缓存虽能显著提升数据访问速度,但也存在缓存更新、一致性等问题,需要权衡利弊。通过实例解析,帮助读者全面理解缓存的运用和挑战。
摘要由CSDN通过智能技术生成

如果这是第二次看到我的文章,欢迎文末扫码订阅我个人的公众号(跨界架构师)哟~  

每周五11:45 按时送达。当然了,也会时不时加个餐~

本文长度为3578字,建议阅读10分钟。

坚持原创,每一篇都是用心之作~

 

此前的「伸缩性」章节结束了,此文是「高性能」章节的第一篇。

 

只要是位正儿八经的程序员自然知道「缓存」是什么,甚至我司的很多做运营的小姐姐现在和程序员小哥哥的交流中都时不时冒出「缓存」字眼,让人压力山大。(本文讨论的「缓存」皆指的是软件层面运用的缓存)

 

大家都知道的一点是,缓存可以让原本打开很慢的页面,变得能“秒开”。你平时访问的APP、网站几乎都有涉及到缓存的运用。

 

那么,缓存除了能加速数据的访问之外,还有什么作用呢?

 

另外,任何事物都有两面性,我们如何才能将缓存的优点发挥得淋淋尽致,同时避免掉到它的弊端中呢?

 

Z哥今天想分享给你的就是我对缓存的理解和运用的思路,希望对你有所启发。

 

 

「缓存」能做什么?

正如前面所说,大家最普遍的理解就是当我们遇到某个页面打开很慢的时候,会想到引入缓存,这样页面打开就快了。

 

其实快和慢都是相对的,从技术角度来说,缓存之所以快是因为缓存是基于内存去建立的,而内存的读写速度比硬盘快X倍,所以用内存来代替硬盘作为读写的介质自然能大大提高访问数据的速度。

 

这个过程大致是这样的,通过在内存中存储访被问过的数据供后续访问时使用,以此来达到提速的效果

 

 

 

其实除此之外,缓存还有另外2个重要的运用方式,「预读取」和「延迟写」。

 

 

预读取

预读取就是预先读取将要载入的数据,也可以称作「缓存预热」。就是在系统对外提供服务之前,先将硬盘中的一部分数据加载到内存中,然后再对外提供服务

 

 

为什么要这样做呢?因为有些系统一旦启动就要面临上千上万的请求进来(在一些toC的项目尤其如此),如果直接让这些请求打到数据库上,非常大的可能是数据库压力暴增,直接被干趴,无法正常响应。

 

为了缓解这个问题,需要通过「预读取」来解决。

 

可能你会问,哪怕用了缓存还是扛不住呢?那就是做横向扩展+负载均衡的时候到了。(可以点击文末链接阅读之前的《弹性架构》系列&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值