SpringBoot @Cachable Redis удалить по частичному ключу
Мое приложение имеет 3-4 метода @Cachable, реализованных с помощью Redis. Все методы используют ключ с 2-3 полями, но все они имеют одно общее поле: submFileId. Например:
@Cachable
public Contract getContract (Long submFileId, Long contractId) { ...
@Cachable
public Member getMember (Long submFileId, Long memberId) { ...
Когда обработка для определенного submFileId завершена, я хотел бы удалить все кэшированные данные для конкретного submFileId, Contract и Member. На данный момент я могу не знать все значения contractrId и memberId, которые использовались в качестве ключей кэша.
Предложения? Есть ли способ настроить вторичный неуникальный ключ только по submFileId, чтобы я мог удалить только это значение? Есть ли лучший подход?
1 ответ
Это слишком узкий вариант использования для обработки аннотацией. Введите Cache
в своем собственном коде и делай что хочешь. Вы по-прежнему извлечете выгоду из абстракции, даже если будете обращаться к ней программно.