黑马程序员技术交流社区

标题: 【济南校区】ehcache配置文件中的淘汰策略简介 [打印本页]

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



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


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









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2