1. 最不经常使用算法(LFU):Least Frequently Used
- 基本思想:“如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小”
- 实现:数组存储数据项,每个数据项存放到map中,用key存放使用频次,用value存放位置,每次数据项被命中后,则次数加一,当新的数据项到来时,遍历,将次数最小的淘汰,将新数据插入
2. 最近最少使用算法(LRU):Least Recently User
- 基本思想:“如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小”
- 实现:可利用数组以及时间戳标记来实现或者使用链表与map配合使用
3. 先进先出算法(FIFO):最先进入的数据,最先被淘汰
- 基本思想:“最近刚访问的,将来访问的可能性比较大”
- 实现:双向链表