LRU:最近使用的放在前面,最近没用的放在后面。
Redis在内存达到最大限制的时候会使用LRU等淘汰机制,如果来了一个新的数,此时内存满了,就需要把旧的数淘汰,那为了方便移动数据,得使用链表类似的数据结构,再加上要判断这条数据是不是最新的或者最旧的那么应该也要使用hashmap等key-value形式的数据结构。
使用LinkedHashMap
1 | public class LRUCache { |
双链表+hashmap
1 | public class LRUCache2 { |
重写removeEldestEntry
1 | public class LRUCache extends LinkedHashMap<Integer,Integer> { |