詳解SpringBoot整合ace-cache緩存

  當我們日常開發的時候,總會遇到一些緩存問題,說白了就是把項目中一些數據量較大且輕易不改動的數據放入緩存,以便後續請求可以迅速響應。因此我們可以使用redis作爲緩存中間件,我認爲使用redis也還是從倆個方面考慮:性能和併發。然後就是ace-cache基於spring boot上的註解緩存,自帶輕量級緩存管理頁面,比spring cache更輕量的緩存,支持單個緩存設置過期時間,可以根據前綴移除緩存。採用fastjson序列化與反序列化,以json串存於緩存之中,ace-cache可以快速用於日常的spring boot應用之中。

然後我記錄下在項目中該如何啓動緩存:

1.POM.xml 文件中添加ace-cache依賴和redis依賴(Spring Boot)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>com.github.wxiaoqi</groupId>
    <artifactId>ace-cache</artifactId>
    <version>0.0.2</version>
</dependency>

2.緩存配置

配置redis數據源,application.yml文件:

#redis-cache 相關
redis:
    pool:
         maxActive: 300
         maxIdle: 100
         maxWait: 1000
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 2000
    # 服務或應用名
    sysName: ace
    enable: true
    database: 0

3.開啓緩存

開啓AOP掃描:

@EnableAceCache

在Service上進行@Cache註解或@CacheClear註解

@Override
@Cacheable(value = "dataDictCache", key = "'petstore:dataDict:all'")
public List<DataDict> getAll() {
    return dataDictMapper.selectAll();
}

4.註解說明

(1)配置緩存@cache

註解參數類型說明
key字符串緩存表達式,動態運算出key
expires×××緩存時長,單位:分鐘
desc描述緩存說明
parserClass<? extends ICacheResultParser>緩存返回結果自定義處理類
generatorClass<? extends IKeyGenerator>緩存鍵值自定義生成類

(2)清除緩存@cacheclear

註解參數類型說明
pre字符串清除某些前綴key緩存
key字符串清除某個key緩存
keys字符串數組清除某些前綴key緩存
generatorClass<? extends IKeyGenerator>緩存鍵值自定義生成類

(3)默認key動態表達式說明

表達式舉例說明舉例
@Cache(key="user:{1}")
public User getUserByAccount(String account)
{1}表示獲取第一個參數值
{2}表示獲取第二個參數值
……依此類推
若:account = ace,則:key = user:ace
@CacheClear(pre="user{1.account}")
User saveOrUpdate(User user)
{1}表示獲取第一個參數值
{1.xx}表示獲取第一個參數中的xxx屬性
若:account=ace,則:key = user:ace




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章