Caffeine 介紹
官網(wǎng)地址:https://github.com/ben-manes/caffeine
Caffeine 是一個(gè)高性能的本地緩存庫成榜。
環(huán)境配置
- JDK版本:1.8
- Caffeine 版本:2.9.3
- SpringBoot 版本:2.7.0
SpringBoot 集成 Caffeine
SpringBoot 有如下兩種方式集成 Caffeine :
- 方式一:直接引入 Caffeine 依賴捌浩,然后使用 Caffeine 方法實(shí)現(xiàn)緩存。
- 方式二:引入 Caffeine 和 Spring Cache 依賴修噪,使用 SpringCache 注解方法實(shí)現(xiàn)緩存斟赚。
我們這里只介紹方式一镐侯。
1搀继、引入相關(guān)依賴
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
2呵燕、緩存配置類
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()
// 設(shè)置最后一次寫入或訪問后兩個(gè)小時(shí)后過期
.expireAfterWrite(7200, TimeUnit.SECONDS)
// 初始的緩存空間大小
.initialCapacity(100)
// 緩存的最大條數(shù)
.maximumSize(1000)
.build();
}
}
3棠绘、數(shù)據(jù)存取
// 1. 注入
@Resource
private Cache<String, Object> caffeineCache;
// 2. 存儲數(shù)據(jù)
caffeineCache.put("access_token", token);
// 3. 讀取數(shù)據(jù)
String token = (String) caffeineCache.asMap().get("access_token");