Ответ 1
Кэш по умолчанию не ограничен: поскольку javadoc для CacheBuilder объясняет
Эти функции являются необязательными
и
По умолчанию экземпляры кеша, созданные CacheBuilder, не будут выполнять никаких выселений.
Для кэша Guava, созданного с помощью приведенного ниже кода, существует максимальный размер кеша, если он не установлен?
LoadingCache<String, String> loadingCache = CacheBuilder.newBuilder().build(new CacheLoader<String, String>() {
@Override
public String load(String key) throws Exception
{
return key.toUpperCase();
}
});
В моем случае я действительно хочу кеш без верхней границы. Я использую кеш для хранения разрешений для зарегистрированных пользователей и выкалывает элементы из кеша при выходе пользователя или истечении срока действия сеанса.
Кэш по умолчанию не ограничен: поскольку javadoc для CacheBuilder объясняет
Эти функции являются необязательными
и
По умолчанию экземпляры кеша, созданные CacheBuilder, не будут выполнять никаких выселений.
Простой ответ не является пределом, если ваш средний "по умолчанию" CacheBuilder.maximumSize()
никогда не вызывается.
И я не думаю, что вашему приложению нужна стратегия выселения на основе размера. Когда пользовательские сессии истекают, просто удалите его из кеша (Cache.invalidate(key)
).
И в верхнем регистре String не нужен кеш, вызов верхнего регистра напрямую намного проще и эффективнее кэша.