缓存的基本知识

在整个计算机体系构造中(无论是硬件层面还是软件层面),缓存都是无处不在的。

在计算机硬件构造中,由于两种介质的速度不匹配,高速介质在和低速介质交互时速度趋向低速方,这就导致了高速介质的资源闲置。而通过引入第三种介质(速度和成本介于两者中间),将低速方读写的部分内容数据保存在该介质中,高速方大多数情况下则无需和低速方直接交互,这样就能整体提升了交互的性能。这就是计算机体系中缓存的由来。比较典型的就是CPU缓存(CPU寄存器=>L1 cahce =>L2 cache =>内存=>硬盘),如图:

 

在计算机系统和应用软件层面,缓存更是无处不在。我们在使用浏览器上网时,很多静态资源会被缓存到本地。我们在手机上采用微信聊天时,很多好友的头像等数据会被缓存到手机中。在操作系统层面,I/O操作也会被内核缓存(一般将数据缓存在文件系统的缓存页中),当然,这个可能相比前两个场景更加抽象,但缓存的目的都是一致的,为了提升读写性能。

 

缓存在狭义上解决介质读写速度不匹配问题,广义上包括任何利用中间媒介提高速度的方法,包括:空间换时间,动态操作变为静态操作。

 

缓存(CACHE)和缓冲(BUFFER)

缓存:可以共享,多种数据,大小不固定,可以重复使用,已知数据,用于提高IO效率。

缓冲:不可以共享,单一数据,大小固定,读取后失效,命中100%,未知数据,用于减少IO次数。

缓存的属性

命中率:从缓存中返回正确数据的次数/总请求次数。

网友评论