Google Guava缓存的默认最大大小是多少?

时间:2012-07-13 03:03:49

标签: guava

鉴于使用下面的代码创建的Guava缓存,如果没有设置最大缓存大小?

LoadingCache<String, String> loadingCache = CacheBuilder.newBuilder().build(new CacheLoader<String, String>() {
    @Override
    public String load(String key) throws Exception
    {
        return key.toUpperCase();
    }
});

在我的情况下,我真的想要一个没有上限的缓存。我正在使用缓存来存储登录用户的权限,并将在用户注销或会话到期时从缓存中逐出项目。

2 个答案:

答案 0 :(得分:22)

默认缓存无限制:正如javadoc for CacheBuilder解释

  

这些功能都是可选的

  

默认情况下,CacheBuilder创建的缓存实例不会执行任何类型的驱逐。

答案 1 :(得分:3)

简单的答案是没有限制的,如果你的平均“默认”是CacheBuilder.maximumSize()从未被调用过。

我认为您的应用程序不需要基于大小的逐出策略。当用户会话到期时,只需将其从缓存中删除(Cache.invalidate(key))。

String大写不需要缓存,直接调用大写比缓存更容易和有效。