Простой 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 (использованных в последнее время).

Другие вопросы по тегам