缓存设计介绍

1、缓存设计包括的内容

      1.1 缓存的内容

      1.2 何时进行缓存

       1.3过期策略(提高命中率)

       1.5更新策略

             大部分缓存算法使用预取策略来提前将部分磁盘数据放入缓存,以进一步减少磁盘I/O,加大缓存命中率。通过记录、分析以往的数据请求模式来预测将来可能被请求到的数据段,将访问可能性大的数据段放入缓存。

2、过期策略

 

      淘汰算法包括以下几种:

 

       2.1 基于访问时间:

             此类算法按各缓存项的被访问时间来组织缓存队列,决定替换对象。如LRU。LRU (LeastRecentlyUsed)是一种应用广泛的缓存算法。该算法维护一个缓存项队列,队列中的缓存项按每项的最后被访问时间排序。当缓存空间已满时,将处于队尾,即删除最后一次被访问时间距现在最久的项,将新的区段放入队列首部

         2.2 基于访问频率

           此类算法用缓存项的被访问频率来组织缓存。如LFU

 

          2.3访问时间和频率兼顾LRFU:引入权重值,兼顾时间和频率;ALRFU:通过对数据访问模式的历史进行监控,ALRFU动态调整值来适应数据访问模式的改变,表现出比LRFU更好的适应性。)

             访问时间与频率兼顾:通过兼顾访问时间与频率,使得在数据访问模式变化时缓存策略仍有较好性能。如FBR、LRFU、ALRFU。多数此类算法具有一个可调或自适应参数,通过该参数的调节使缓存策略在基于访问时间与频率间取得一定平衡。

          2.4基于访问模式

             :某些应用有较明确的的数据访问特点,进而产生与其相适应的缓存策略。如专为VoD系统设计的A&L缓存策略,同时适应随机、顺序两种访问模式的SARC策略。

3、缓存类型

    只读缓存(read-only):没有什么好说的 
    读/写缓存(read-write):程序可能要的更新数据 
    不严格的读/写缓存(nonstrict-read-write):需要更新数据,但是两个事务更新同一条记录的可能性很小,性能比读写缓存好 
     事务缓存(transactional):缓存支持事务,发生异常的时候,缓存也能够回滚,只支持jta环境,这个我没有怎么研究过 

4、更新策略

你可能感兴趣的:(算法,磁盘)