Я постараюсь сделать свой вопрос коротким и простым.
Скажем, у меня есть приложение Springboot, которое позволяет создавать определенную сущность со Время жизни . Я храню сущность в MongoDB. Когда приходит запрос на получение объекта, приложение извлекает его из БД, кэширует его в Redis и отправляет ответ. Следующие последовательные запросы будут обслуживаться из кэша
Когда истекает TTL (, который настраивается и определяется во время создания объекта ) объекта, он будет удален из MongoDB.
У меня проблемы с выяснением, как синхронизировать c с кэшем Redis. Я думал, что во время первого запроса, когда я кэширую ответ, я бы кешировал его с оставшимся TTL объекта, так что мне не нужно было ничего делать, чтобы удалить его из обоих Mon go и редис. Redis и Mon go позаботятся об удалении самостоятельно. В настоящее время я кеширую ответы, используя аннотацию @Cacheable
, но я не смог найти в этой аннотации какого-либо дополнительного параметра, который будет динамически устанавливать TTL.
Есть ли способ добиться этого, сохранив @Cacheable
аннотации по моему методу?