鉴于使用下面的代码创建的Guava缓存,如果没有设置最大缓存大小?
LoadingCache<String, String> loadingCache = CacheBuilder.newBuilder().build(new CacheLoader<String, String>() {
@Override
public String load(String key) throws Exception
{
return key.toUpperCase();
}
});
在我的情况下,我真的想要一个没有上限的缓存。我正在使用缓存来存储登录用户的权限,并将在用户注销或会话到期时从缓存中逐出项目。
答案 0 :(得分:22)
答案 1 :(得分:3)
简单的答案是没有限制的,如果你的平均“默认”是CacheBuilder.maximumSize()
从未被调用过。
我认为您的应用程序不需要基于大小的逐出策略。当用户会话到期时,只需将其从缓存中删除(Cache.invalidate(key)
)。
String大写不需要缓存,直接调用大写比缓存更容易和有效。