游客发表
大家好,本地我是缓存爱学习的了不起!
在项目中用到的完胜除了分布式缓存,还有本地缓存,本地例如:Guava、缓存Encache,完胜使用本地缓存能够很大程度上提升程序性能,本地本地缓存是缓存直接从本地内存中读取,没有网络开销。完胜
今天给大家介绍一个高性能的本地 Java 缓存库 -- Caffeine 。
Caffeine是缓存基于Java8 的高性能缓存库,借鉴了 Guava 和 ConcurrentLinkedHashMap 的b2b信息网完胜设计经验,拥有更高的本地缓存命中率和更快的读写速度。
性能比Guava更强

引入依赖
            
caffeine
配置缓存类
@Configurationpublic class CacheConfig{
@Bean public Cache<String, Object> caffeineCache(){
returnCaffeine.newBuilder()
// 设置了1分钟的写过期 .expireAfterWrite(60, TimeUnit.SECONDS)
// 初始的缓存空间大小 .initialCapacity(100)
// 缓存的b2b供应网最大条数 .maximumSize(1000)
.build();
}
}
这种方式的弊端是所有的缓存都放在一起,最好的使用方式是每一个缓存单独创建缓存对象。
使用缓存
public User getOne(Wrapper<User> queryWrapper, boolean throwEx){
//查询缓存 Object obj = caffeineCache.getIfPresent("1");
User user = null;
if(Objects.isNull(obj)){
System.out.println("查询db");
user = getById(1);
//加载到缓存中 caffeineCache.put("1",user);
}else{
user = (User) obj;
}
returnuser;
}
Caffeine 是当前优秀的内存缓存框架,无论读还是写的效率都远高于其他缓存,从 Spring5 开始的默认缓存实现就将 Caffeine 代替原来的Google Guava,支持多种回收策略,感兴趣的云服务器提供商小伙伴赶快去试试吧
随机阅读
热门排行
友情链接