gpt4 book ai didi

java LRU缓存: LinkedHashMap with a timestamp?

转载 作者:行者123 更新时间:2023-12-02 01:10:10 24 4
gpt4 key购买 nike

我需要用Java实现一个过期时间为600s的LRU缓存。我搜索了一下,找到了内置的LinkedHashMap类。当大小超过限制时,它可以删除最旧的元素,但元素没有过期时间。

我能想到的是在将元素放入缓存时关联时间戳。检索元素时,检查其时间戳;如果时间戳早于 600 秒,则从缓存中删除该元素并返回“not-found”。

还有更好的想法吗?有任何内置解决方案或最佳实践吗?我想避免重新发明轮子。

最佳答案

只使用 Guava cache 怎么样? .

它支持所有these ,

A builder of LoadingCache and Cache instances having any combination of the following features:

  • automatic loading of entries into the cache
  • least-recently-used eviction when a maximum size is exceeded
  • time-based expiration of entries, measured since last access or last write
  • keys automatically wrapped in weak references
  • values automatically wrapped in weak or soft references
  • notification of evicted (or otherwise removed) entries
  • accumulation of cache access statistics

关于java LRU缓存: LinkedHashMap with a timestamp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59517741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com