Я пытаюсь реализовать кеш, который будет подсчитывать количество попыток входа в систему за последние 5 минут, в своем коде я хочу проверить, не пытался ли пользователь выполнить больше, чем MAX_ATTEMPTS.
Во всехПримеры кода, которые я нашел в Интернете для "Guava Cache", используют метод load, чтобы извлечь значение из какого-либо другого источника или вычислить его, используя какой-либо метод. Как я могу увеличивать его при каждом попадании в кэш?
static LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
.maximumSize(100000)
.expireAfterAccess(5, TimeUnit.MINUTES)
.build(
new CacheLoader<String, Integer>() {
public Integerload(String user) {
return ????;
}
}
);
позже во время выполнения я хотел бы проверить:
if(cache.getIfPresent(user) != null && cache.get(user) > MAX_ATTEMPTS)
, а также увеличить его, если:
if(cache.getIfPresent(user) != null && cache.get(user) <= MAX_ATTEMPTS)