A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    在ehcache本地缓存使用时,配置文件节点<ehcache>中有一个属性memoryStoreEvictionPolicy(淘汰策略),其取值有三个,分别是FIFO、LRU、LFU,分别是什么意思?
    我们先假设一个cache缓存区中最多能存放5个元素(element),通过图示来简单说明这三种策略。
FIFO(先进先出),数据存放结构是队列的方式,当我们向cache缓存区中依次存放Element时,新数据会排在队列的尾部,当满员时,删除的是队列顶部的元素。比如存储满5个元素(E1-E5)后,当E6被存入时,队列满员,需要淘汰掉其中的某个元素,那么我们看到E1在队列的头部,会被优先淘汰掉,与是否被访问(查询)没有直接关系。



LRU是(最近最少使用),数据存放结构是链表方式,方便数据的移动,同上,我们也一次存放满5个元素(E1-E5),新数据会插入到链表的头部,删除的是尾部缓存元素,具体过程参见下图的4个步骤操作:


LFU(最近最不常用),数据存取方式与队列相同,即先入会进入队列头部,淘汰优先删除头部,但是其中数据顺序会根据我们查询的次数不同进行重排。我们也使用图示说明:
   




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马