@CacheEvict 是 Spring 框架中用於快取操作的一個註解,它屬於 Spring Cache 抽象的一部分。這個註解通常用在方法上,表示執行該方法時會觸發快取的清除操作。
具體來說,當你對一個方法使用了 @CacheEvict 註解,Spring 會在該方法執行完成後,根據註解中定義的快取名稱和條件,去清除指定的快取。這樣做可以確保快取中的資料是最新的,避免了因為資料過時而導致的問題。
@CacheEvict 註解有幾個重要的屬性:
value:用於指定要清除的快取的名稱。
key:用於指定清除快取時使用的鍵。
condition:用於指定清除快取的條件,只有當條件滿足時,才會執行清除操作。
allEntries:用於指定是否清除快取中的所有條目,預設為 false,表示只清除指定的條目。
beforeInvocation:用於指定是否在方法執行之前清除快取,預設為 false,表示在方法執行之後清除快取。
使用 @CacheEvict 註解時,需要注意快取的一致性和效能問題。因為清除快取是一個相對昂貴的操作,如果頻繁地清除快取,可能會對系統的效能產生負面影響。
因此,在使用 @CacheEvict 註解時,需要仔細考慮清除快取的策略和條件,以確保系統的效能和資料的準確性
配套使用
// 從redis快取中查
@Cacheable(value = CacheConstants.VEHICLE_CLIENT, key = "'list'")
// 清除redis快取
@CacheEvict(cacheNames = CacheConstants.VEHICLE_CLIENT, allEntries = true)