Простой Spring Memcached - как добавлять объекты без истечения срока действия
Я использую SSMCache
хранить некоторые объекты в моем приложении. Я добавляю SSMCache
возражать против моего CacheManager
как ниже:
@Bean
@Override
public CacheManager cacheManager() {
Set<SSMCache> ssmCacheSet = new HashSet<>();
try {
ssmCacheSet.add(new SSMCache(getMyCache(),
PropertyManager.getIntProperty("memcached.interval", 14400), true));
} catch (Exception e) {
LOGGER.error("Error creating cache manager", e);
}
SSMCacheManager ssmCacheManager = new SSMCacheManager();
ssmCacheManager.setCaches(ssmCacheSet);
return ssmCacheManager;
}
Я хочу знать, как НЕ указывать время истечения срока действия кеша, чтобы мой кеш всегда был доступен, т.е. Я не хочу, чтобы мой кэш истек вообще.
Я прошел официальную документацию для Simple Spring Memcached
но не смог найти способ указать значение для не истекающего кэша.
Я думаю, используя значение 0
заставит кеш вообще не истечь, но я просто хочу убедиться в документации или вики, где он указан. Также я прошел через конструкторы SSMCache
и не смог найти тот, у которого нет параметра срока действия.
Пожалуйста, помогите мне, как создать кеш без истечения срока действия.
2 ответа
Да, 0 должен уведомить memcached, чтобы не истечь этот ключ. Это не означает, что ключ будет всегда в кеше, потому что он все еще может быть удален из кеша из-за выселения.
Если вы заметили, что SSM не соблюдает 0, сообщите об ошибке.
Вы проверяли исходный код в репозитории Github. Вы можете искать ключевое слово "никогда не истекает" в хранилище, и вы получите файлы, имеющие строки, как показано ниже. Например, UpdateSingleCache.java содержит следующие подробности в комментариях.
Также обратите внимание: значение 0 означает, что данное значение никогда не должно истекать. Значение по-прежнему подвержено очистке с помощью memcached для пробела и соображений LRU (использованных в последнее время).