mjn*_*mjn 4 java collections caching data-structures
Java中的哪种数据结构最适合实现内存中对象缓存,其中对象具有单独的到期时间?
基本上对于缓存我可以使用Map(其中key可以是String),它提供put和get方法,并使用"timestamp"+"object"对的有序列表来管理到期时间.因此,清理线程可以检查第一个列表条目,并在其到期时间过后删除该对象.(删除第一个元素应该在O(1)时间内)
Jon*_*han 11
您所描述的构建基本上是ExpiringMap.还有其他类似的实现,例如Guava(参见CacheBuilder) - 尽管我不相信它支持ExpiringMap的每个条目到期.
缓存框架现在非常成熟:
但是,如果您坚持重新发明轮子,请记住考虑内存利用率.我经常看到一个严重实现的缓存(HashMap
)有效地变成了内存泄漏.
请参阅Cowan的答案:Java的WeakHashMap和缓存:为什么它引用键而不是值?
归档时间: |
|
查看次数: |
4209 次 |
最近记录: |