如何实现缓存以在内存中存储100个元素,并实现LRU算法,以便在缓存已满时删除最旧的元素。
答案 0 :(得分:3)
缓存类似于ConcurrentMap,但不完全相同。最根本的区别在于ConcurrentMap会持久保存添加到其中的所有元素,直到它们被明确删除。另一方面,缓存通常配置为自动逐出条目,以限制其内存占用。
由于它是一个生产环境,我建议使用一些现有的库,如google guava cache,而不是重新发明轮子。
但是,如果您希望自己设计缓存,则需要考虑以下几点:
起点应该是定义缓存需要通过接口公开的功能。我确定单独的ConcurrentHashMap不足以实现上述功能。您可能需要使用其他数据结构来扩充它。