缓存领域常用术语

23 篇文章 3 订阅
2 篇文章 0 订阅

由于博客迁移,已经放在了自己的小站上了

详细地址:http://www.wangchunlong.cn/article/7

 

在合理应用缓存前,需要了解缓存领域里相关的几个常用术语:

1.1、 缓存命中:表示数据能够从缓存中获取,不需要回源

1.2、 Cache miss(缓存没有命中) :表示没有命中缓存,如果缓存内存中还有内存空间的话,会将数据加入到缓存中

1.3、 存储成本: 当没有命中缓存时,回源获取后会将数据放置到存储中,整个将数据放置到存储空间需要的时间以及空间称之为存储成本

1.4、 缓存失效: 当源数据发生变更后,意味着缓存中的数据失效

1.5、 缓存污染: 将不经常访问的数据放置到缓存存储空间中,以至于频繁访问的数据无法放置到缓存中

1.6、 替代策略: 当数据放置到缓存空间时,就需要从缓存空间中去除已有的数据,选择去除那些数据就是有替代策略决定的,常见替代策略如下:

  • Least-Recently-Used(LRU):替换掉最近被请求最少的对象,这种传统策略在实际中应用最广。在CPU缓存淘汰和虚拟内存系统中效果很好。然而在直接应用与代理缓存中效果欠佳,因为Web访问的时间局部性常常变化很大。 浏览器就一般使用了LRU作为缓存算法。新的对象会被放在缓存的顶部,当缓存达到了容量极限,底部的对象被去除,方法就是把最新被访问的缓存对象放到缓存池的顶部。
     

  • Least-Frequently-Used(LFU):替换掉访问次数最少的缓存,这一策略意图是保留最常用的、最流行的对象,替换掉很少使用的那些数据。然而,有的文档可能有很高的使用频率,但之后再也不会用到。传统的LFU策略没有提供任何移除这类文件的机制,因此会导致“缓存污染”,即一个先前流行的缓存对象会在缓存中驻留很长时间,这样,就阻碍了新进来可能会流行的对象对它的替代。                                                                                                                                                                      

  • SIZE: 替换占用空间最大的对象,这一策略通过淘汰一个大对象而不是多个小对象来提高命中率。不过,可能有些进入缓存的小对象永远不会再被访问。SIZE策略没有提供淘汰这类对象的机制,也会导致“缓存污染”。                                                                 

  • First in First Out(FIFO):FIFO通过一个队列去跟踪所有的缓存对象,最近最常用的缓存对象放在后面,而更早的缓存对象放在前面,当缓存容量满时,排在前面的缓存对象会被踢走,然后把新的缓存对象加进去。

 

       由于存储空间有限,替代策略要解决的核心问题是尽量保留高频访问的缓存数据,降低缓存污染以提升缓存命中率和整体的缓存效率,难点在于需要基于数据历史访问情况,以一种合适的对未来访问情况的预估才能找到更佳的策略。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值