咖啡因缓存,获取最旧的元素
Caffeine Cache, get oldest element
因为 concurrentedLinkedHashmap 作者建议如果使用 java 8.
我想知道如何获取缓存中最旧的元素。
(在 LinkedHashMap 中,我可以删除迭代器的第一个元素来实现这一点)。
不幸的是,我没有在咖啡因文档中找到任何内容。
Cache.policy().eviction().get().coldest(1)
将return最老的元素。
此外,可以添加一个CacheWriter或RemovalListener来处理在特定时间或特定数量的元素之后移除最旧的元素:
new CacheWriter<Long, List<IOperation>>()
{
@Override
public void write(@NotNull final Long key, @NotNull final List<IOperation> value)
{
//On addition
}
@Override
public void delete(@NotNull final Long key, @Nullable final List<IOperation> value, @NotNull final RemovalCause cause)
{
//On removal
}
})
因为 concurrentedLinkedHashmap 作者建议如果使用 java 8. 我想知道如何获取缓存中最旧的元素。 (在 LinkedHashMap 中,我可以删除迭代器的第一个元素来实现这一点)。
不幸的是,我没有在咖啡因文档中找到任何内容。
Cache.policy().eviction().get().coldest(1)
将return最老的元素。
此外,可以添加一个CacheWriter或RemovalListener来处理在特定时间或特定数量的元素之后移除最旧的元素:
new CacheWriter<Long, List<IOperation>>()
{
@Override
public void write(@NotNull final Long key, @NotNull final List<IOperation> value)
{
//On addition
}
@Override
public void delete(@NotNull final Long key, @Nullable final List<IOperation> value, @NotNull final RemovalCause cause)
{
//On removal
}
})