如何在SpringBoot中清除所有快取 ?
快取提高了效能,但也引入了一致性問題。這就是為什麼在我的 Spring Boot 應用程式中啟用快取後,我意識到提供一個程式來按需清除所有快取是多麼重要。
登入到您的伺服器以手動釋放 您的應用程式的所有快取資料應該是最後一個絕望的選擇。因此,我開始尋找方法來為管理員提供一種在需要時清除所有快取的可靠且安全的方法。幸運的是,這可以透過幾行程式碼輕鬆實現。
讓我們看看如何定義一個自定義 API,旨在清除 Spring Boot 應用程式的快取。
構建 API
假設您的應用程式已經使用了快取引擎,並使用了Spring Cache 模組。一切都被認為是正確配置的。
為了處理快取,Spring在啟動時內部建立了一個CacheManager bean。儘管 Spring 不提供按需清除所有快取的功能,但您可以透過利用此快取管理器來實現這一點。
事實上,它的getCacheNames()方法返回您的管理器中已知的快取名稱的集合。透過迭代它們,您可以檢索當前正在處理的每個Cache例項,並clear()在每個例項上呼叫該方法。
透過這種簡單的方法,您可以定義一種安全的方法來清除 Spring Boot 應用程式中使用的所有快取。這就是為什麼設計一個 API 來實現這樣的目標並不複雜,可以實現如下:
@RestController @RequestMapping("/caches") public class CachingController { @Autowired private CacheManager cacheManager; @DeleteMapping("clear") public ResponseEntity<Void> clearAllCaches() { cacheManager .getCacheNames() .stream() .forEach(cacheName -> cacheManager.getCache(cacheName).clear()); } } |
您只需要自動連線已實現的CacheManager bean 並遵循上述方法。透過將這個邏輯封裝在一個公開的端點中,您實際上是在定義一個觸發器,只要呼叫 API 就可以啟用它。
請注意,只有在插入第一個條目時才會初始化快取。這意味著在CacheManager快取任何資料之前,您不會看到任何可用的快取。
相關文章
- macOS 中清除 DNS 快取MacDNS快取
- 如何在蘋果 Mac上清除快取檔案?蘋果Mac快取
- 清除 Electron 中的快取資料快取
- flutter 獲取應用快取以及清除快取Flutter快取
- iOS-清除快取(有用)iOS快取
- 教你如何在dos下清除列印快取及重啟列印服務快取
- SpringBoot中整合Redis(快取篇)Spring BootRedis快取
- 重新整理dns快取命令 dns快取清除命令DNS快取
- Mac OS X 清除DNS快取MacDNS快取
- 清除 Nuxt 資料快取:clearNuxtDataUX快取
- 清除 Nuxt 狀態快取:clearNuxtStateUX快取
- SpringBoot中實現兩級快取Spring Boot快取
- SpringBoot中Shiro快取使用Redis、EhcacheSpring Boot快取Redis
- SpringBoot使用快取Spring Boot快取
- 用whistle清除js和css快取JSCSS快取
- 微信清除快取資料方法快取
- 如何在SPRING中同時管理本地快取和分散式快取? - techblogSpring快取分散式
- SpringBoot快取管理(一) 預設快取管理Spring Boot快取
- SpringBoot整合Redis快取Spring BootRedis快取
- SpringBoot系列——cache快取Spring Boot快取
- 如何快速清除 Ubuntu 的系統快取Ubuntu快取
- SpringBoot快取管理(二) 整合Redis快取實現Spring Boot快取Redis
- 如何在 Spring Boot 中為快取新增壓縮?Spring Boot快取
- SpringBoot 下 Mybatis 的快取Spring BootMyBatis快取
- springboot +lettuce +redis 快取使用Spring BootRedis快取
- js清除所有的cookieJSCookie
- 在 Linux/Unix/Mac 下清除 DNS 查詢快取LinuxMacDNS快取
- 如何清除Safari,Chrome和Firefox中的快取,歷史記錄和CookieChromeFirefox快取Cookie
- SpringBoot 註解呼叫Redis快取Spring BootRedis快取
- 介紹SpringBoot 整合 Redis 快取Spring BootRedis快取
- SpringBoot 整合快取效能之王 CaffeineSpring Boot快取
- win10如何清除快取和垃圾,清理win10快取和垃圾的方法Win10快取
- 谷歌瀏覽器怎麼清除快取 chrome瀏覽器清理快取方法介紹谷歌瀏覽器快取Chrome
- 微信開發:清除微信瀏覽器快取瀏覽器快取
- 清空微信瀏覽器清除快取debug頁面瀏覽器快取
- 快取架構中的服務詳解!SpringBoot中二級快取服務的實現快取架構Spring Boot
- springboot註解方式使用redis快取Spring BootRedis快取
- SpringBoot中使用Redis實現快取Spring BootRedis快取