SpringBoot項目使用Caffeine本地緩存


 

環境配置:(或以上版本,必須)

JDK 版本:1.8  
Caffeine 版本:2.8.0
SpringBoot 版本:2.2.2.RELEASE

 

也可以不與SpringBoot結合

 

1、添加maven依賴

<dependency>
   <groupId>com.github.ben-manes.caffeine</groupId>
   <artifactId>caffeine</artifactId>
   <version>2.8.0</version>
</dependency>

  

2、添加配置類

CacheConfig.java
package com.example.demo.config;

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

@Configuration
public class CacheConfig {

    @Bean
    public Cache<String, Object> caffeineCache() {
        return Caffeine.newBuilder()
                // 設置最后一次寫入經過60s過期
                .expireAfterWrite(60, TimeUnit.SECONDS)
                // 初始的緩存空間大小
                .initialCapacity(100)
                // 緩存的最大條數
                .maximumSize(1000)
                .build();
    }
}

 

配置說明

參數 類型 描述
initialCapacity integer 初始的緩存空間大小
maximumSize long 緩存的最大條數
maximumWeight long 緩存的最大權重
expireAfterWrite duration 最后一次寫入后經過固定時間過期  (與expireAfterAccess 同時存在時,以 expireAfterWrite 為准)
expireAfterAccess duration 最后一次訪問后經過固定時間過期 (與expireAfterWrite 同時存在時,以 expireAfterWrite 為准)
refreshAfterWrite duration 創建緩存或者最近一次更新緩存后經過固定的時間間隔,刷新緩存
weakKeys boolean 打開 key 的弱引用
weakValues boolean 打開 value 的弱引用(與softValues不能同時使用)
softValues boolean 打開 value 的軟引用 (與weakValues不能同時使用)
recordStats - 開發統計功能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

軟引用: 如果一個對象只具有軟引用,則內存空間足夠,垃圾回收器就不會回收它;如果內存空間不足了,就會回收這些對象的內存。

弱引用: 弱引用的對象擁有更短暫的生命周期。在垃圾回收器線程掃描它所管轄的內存區域的過程中,一旦發現了只具有弱引用的對象,不管當前內存空間足夠與否,都會回收它的內存

設置方式如下: 

// 軟引用
Caffeine.newBuilder().softValues().build();

// 弱引用
Caffeine.newBuilder().weakKeys().weakValues().build();

  

 

3、調用示例

 @Autowired
 Cache<String, Object> caffeineCache;


// 加入緩存
caffeineCache.put(key,value);


// 先從緩存讀取
 caffeineCache.getIfPresent(id);


// 從緩存中刪除
caffeineCache.asMap().remove(key);

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM