从操作系统内存置换到CPU内存读取,缓存的应用无处不在,在CDN中运用缓存技术同样可以提高CDN的运行效率。正如缓存的其他应用一样,CDN中缓存算法的使用也大致相同。
基于CDN的架构,CDN许可证办理不可能把所有资源都放在一个低层服务器上,需要对资源进行选择,并将选择出来的资源放到缓存中,缓存算法便是对这些资源进行选择和更新的过程。缓存,相当于部分原始数据的一个池,这些数据会通过缓存算法时不时地进行更新,以便很好地响应用户的请求。
CDN缓存的工作过程是这样的:用户发出一个请求,如果请求被命中,缓存将对用户的请求进行响应,返回其请求的数据;如果未被命中,缓存向上拉取用户需要的数据,并对其存储的数据进行替换。无论是否命中,缓存算法都应该更新每个资源对应的“分数”,这个分数将决定该资源能否继续呆在缓存之中。缓存算法的意义在于,根据用户的请求习惯,对缓存中的数据进行更新,使用户请求的命中率提高,或是从另一种角度看,缩短整体响应用户请求延时,并同时极大地提高高峰时间网络所能承受的访问容量。一个良好的缓存算法,不仅重视命中率,还考虑相应的存储成本、运行效率等众多因素。
总之,缓存算法是基于用户请求情况,对缓存中的数据进行筛选的过程,其目的在于提高响应用户请求的效率。