基于caffeine本地缓存的实现
1.本地缓存实现
1.1导入依赖
<!-- caffeine 缓存 -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
1.2 创建缓存spring的bean容器
package org.jeecg.modules.test;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
/**
* 本地缓存
*/
//@Component
public class TestLocalCacheManager implements InitializingBean {
private Cache<String,String> localCache;
/**
* 向缓存中保存数据,如果已经存在则不覆盖
*/
public void putIfNotExist(String key, String value){
if(localCache.getIfPresent(key)==null){
localCache.put(key,value);
}
}
/**
* 根据key获取缓存数据
*
*/
public String get(String key){
return localCache.getIfPresent(key);
}
public void del(String key){
localCache.invalidate(key);
}
/**
* 在bean初始化时,初始化本地缓存
*
*/
@Override
public void afterPropertiesSet() throws Exception {
localCache = Caffeine.newBuilder()
.expireAfterWrite(10, TimeUnit.SECONDS)//写入后过期时间
.expireAfterAccess(10, TimeUnit.SECONDS)//访问过后失效时间
.maximumSize(1000)//初始缓存大小
.build();
}
}
1.3 具体使用
在对应类中注入@Autowired该TestLocalCacheManager类直接和map的使用方法没有什么差异
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)