Пользовательский срок годности для различных объектов с использованием memcached и весенней загрузки - PullRequest
0 голосов
/ 15 мая 2018

Я использую этот клиент в моем Spring boot проекте для подключения к моему memcached экземпляру, работающему на моем кластере.

Все работает нормально, НО до сих пор я мог только установитьпо истечении срока годности для всех моих кешей, что мне сейчас неудобно, я хочу установить пользовательские даты истечения срока, как это можно сделать на memcached для Appengine.

У кого-нибудь есть идеи?клиент не кажется таким гибким.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Вы можете установить срок действия для каждого имени кэша также с помощью библиотеки memcached-spring-boot .Вы можете просто сделать это через memcached.cache.expirations свойство конфигурации.Например:

 memcached.cache:
     servers: example1.com:11211,example2.com:11211
     mode: static
     expirations: 86400, cache_name1:3600, cache_name2:108000 

Здесь 86400 представляет глобальное истечение срока действия (используется для всех кэшей).И в случае, если вы хотите иметь другое значение срока действия для каждого кэша, вы можете установить его как cache_name1:3600 (срок действия кэша с именем cache_name1 истечет через 3600 секунд).

В этом случае ваша конфигурация кэшанаходится за пределами исходного кода, поэтому вам будет проще настроить разные сроки действия для разных сред (например, dev , prod ).

0 голосов
/ 16 мая 2018

Это связано с тем, что в Spring нет встроенной поддержки пользовательского срока действия.Я предлагаю вам использовать simple-spring-memcached с Spring Boot для включения пользовательского срока действия.Если вы используете эту библиотеку, у вас есть два варианта:

  1. Используйте аннотации, предоставленные simple-spring-memcached.Они поддерживают пользовательский срок действия.
  2. Используйте ExtendedSSMCacheManager, предоставленный simple-spring-memcached, для интеграции с собственным кэшированием Spring Boot.Это позволяет вам установить срок действия как часть имени кэша следующим образом:

    @Cacheable("default#3600")   
    public ComplexSerializableResult compute(Long input) {
        // ...
        return result;   
    }
    

    Здесь default - имя кэша, а срок действия - 3600 секунд.

Для получения дополнительной информации о том, как настроить simple-spring-memcached с Spring Boot, см. SSM wiki или MemCachier Spring Boot документацию .

Для пошаговых инструкцийО том, как использовать simple-spring-memcached с Spring Boot, смотрите этот учебник .Он создан для платформы Heroku, но работает независимо от Heroku.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...