这道题总共分了以下几层来问的(答案是我想的,不一定对哈,欢迎指正):
1. 纯内存 LRU,那么就是 leetcode 的原题,双向链表+HashMap
2. 内存放不下了怎么办,文件操作 + HashMap
3. 多线程怎么做,HashMap 分 bucket 加锁,文件共用一把锁(答到这里我已经觉得不太好了,因为最后多线程还是会锁在文件这里,造成等待)
4. 分布式怎么做,Hash 到对应的分片拿数据,但是怎么在多台机器之间实现类似双向链表的逻辑,我就没答上来了。
希望大家有想法的一起讨论一下。
1. 纯内存 LRU,那么就是 leetcode 的原题,双向链表+HashMap
2. 内存放不下了怎么办,文件操作 + HashMap
3. 多线程怎么做,HashMap 分 bucket 加锁,文件共用一把锁(答到这里我已经觉得不太好了,因为最后多线程还是会锁在文件这里,造成等待)
4. 分布式怎么做,Hash 到对应的分片拿数据,但是怎么在多台机器之间实现类似双向链表的逻辑,我就没答上来了。
希望大家有想法的一起讨论一下。