для аннотации @Cacheable в Yudao, вам нужно указать параметр timeToLive
или ttl
. Этот параметр определяет, сколько времени кэш будет хранить данные после последнего доступа к ним. Пример использования аннотации @Cacheable с параметром timeToLive
: java @Cacheable(value = "myCache", key = "#root.methodName + #id", cacheManager = "myCacheManager", unless = "#result == null", sync = false, timeToLive = 3600) public MyObject getMyObject(Long id) { // логика получения объекта }
В этом примере кэш будет хранить данные в течение 3600 секунд (1 час). Также можно использовать параметр timeToIdle
для определения времени, в течение которого кэш будет хранить данные без доступа к ним. Пример использования параметра timeToIdle
: java @Cacheable(value = "myCache", key = "#root.methodName + #id", cacheManager = "myCacheManager", unless = "#result == null", sync = false, timeToIdle = 1800) public MyObject getMyObject(Long id) { // логика получения объекта }
В этом примере кэш будет хранить данные в течение 1800 секунд (30 минут) без доступа к ним. Таким образом, вы можете настроить время истечения для аннотации @Cacheable в Yudao, используя параметры timeToLive
и timeToIdle
.
Это ссылка на вопрос, который я задавал ранее: https://gitee.com/zhijiantianya/yudao-cloud/issues/IBBR2P
Однако, несмотря на указания в документации, я не смог правильно настроить время жизни кеша. При каждом вызове метода, помеченного аннотацией @Cacheable, метод createRedisCache класса TimeoutRedisCacheManager, который был создан для настроек времени жизни кеша, не вызывается. Это, вероятно, является основной причиной проблемы, но я не могу понять, почему этот метод не вызывается.