固然咱們在平時的使用過程過程當中,都是使用redis來作分佈式緩存,並且通常在業務邏輯中,接口這種命中率比較低,並且還要考慮緩存淘汰算法的選取,因此通常應用很少。可是spring既然有這麼個功能,咱們就來看看,這裏參照前輩的Spring5-Design-Patterns來寫這篇博客。html
這裏須要使用@EnableCaching註解來開啓緩存,而後之類還須要一個緩存管理器,這裏使用ConcurrentMapCacheManager,這個實現後續再看。git
這裏再使用@CachePut("accountCache")來標記這個緩存,可是我看這裏面的註解選項,好像沒有緩存時間,而後咱們就可使用啦github
輸出:redis
可供選擇的有這些,簡單介紹三種:算法
這裏主要使用的有三個註解:spring
@Cacheable 主要針對方法配置。可以依據方法的請求參數對其結果進行緩存
@CachePut 主要針對方法配置,可以依據方法的請求參數對其結果進行緩存,和 @Cacheable 不一樣的是,它每次都會觸發真實方法的調用
@CachEvict 主要是用來標註在須要清除緩存元素的方法或類上的。當標記在一個類上時表示其中全部的方法的執行都會觸發緩存的清除操做緩存
這裏能夠知道第二次查詢的時候,是從緩存中取的,這裏的依賴有:less
感受可供選擇的仍是比較少的,不是特別實用,在複雜的業務場景前。分佈式
參考:htm