@CacheEvict(value = "FOO", key = "baz*")當快取FOO包含鍵baz_1并且baz_2它們被逐出時,是否有類似的東西?
uj5u.com熱心網友回復:
假設您有spring-boot-starter-cache依賴項,spring boot 會自動配置一個CacheManager名為cacheManager.
此外,假設您有spring-boot-starter-data-redis一個依賴項,RedisCacheManager則選擇作為CacheManager實作。
@CacheEvict (和快取抽象 API)不允許您選擇按前綴驅逐,但使用 AOP 建議(或其他合適的地方),您可以利用底層實作:
RedisCache redisCache = (RedisCache) cacheManager.getCache("FOO");
redisCache.getNativeCache().clean("FOO", "baz*".getBytes());
實際上沒有嘗試過,但我認為這應該有效。
同樣,您可以適應其他快取實作。
這種方法的缺點是,您必須在更改快取實作時更改代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/350028.html
