总之,CDN缓存算法是基于用户请求情况,对缓存中的数据进行筛选的过程,其目的在于提高响应用户请求的效率。
早期的缓存技术可用来节省带宽以减少网络拥塞,但它们不可避免地引起了以下问题:
一是用户有可能得不到网页的及时更新,因为缓存区不可能自动跟踪网页的变化;
二是为得到最新网页,用户访问时需要首先查询真正的服务器上的内容,这将导致访问速度的降低,更多相关知识:http://www.yanhuangzixun.com/。
因此,需要对CDN缓存算法进行改进。CDN缓存算法发展至今,已有一些效果令人较为满意的成果,从一开始的包括基于访问频率的算法到基于访问时间的算法再慢慢完善,现在已有了访问时间与访问频率相结合等较为理想的算法。
基于访问频率的算法,通过在某段时间内对资源被访问的次数进行统计,以此来判断该资源接下来会不会被访问。这类算法理所当然最容易理解,因此也最容易被接受,包括LFU(Least Frequently Used),以及在此基础上发展起来的 2Q(2 Queues)、LIRS(Low Inter-Reference Recency Set)等算法,如果还开展ISP业务,需要办理ISP许可证;
基于访问时间的算法,通过记录资源访问的时间,以时间作判断依据,包括LRU(Least Recently Used)算法;访问时间与访问频率相结合的算法,综合了基于访问频率和访问时间等算法。
当然,因为现实当中有各种各样的因素,这些CDN缓存算法各自或多或少地存在一些优点和缺点,所以没有一种缓存算法能完美解决所有的缓存问题。结合实际情况,通过对已知的缓存算法进行改善,使之能切合我们的目标,才是关键所在。
CDN缓存算法介绍 目前CDN缓存算法主要分为访问频率、访问时间以及由此衍生出的变种算法,下面将介绍这几种算法。
(1)“最近最少使用”算法;
(2)“最近最少使用”算法的变种;
(3)“最少频率使用”替换算法;
(4)“基于分数因子”的缓存算法;
(5)“块等级”缓存算法。