目录
本文介绍Ehcache 3.8.0版本的简单使用以及在SpringBoot下的集成。
一、导入jar包
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.8.0</version>
</dependency>
二、编码方式使用
// CacheManager 用于创建、得到、移除、关闭Cache
// build()只实例化CacheManager,初始化需要使用cacheManager.init();
// build(true) 实现了实例化和初始化两个操作
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(true);
// ResourcePoolsBuilder 用于构建Cache的各项参数
ResourcePoolsBuilder resourcePoolsBuilder = ResourcePoolsBuilder.newResourcePoolsBuilder();
// ResourcePools 存放Cache各项参数的对象
// heap() 缓存在内存中的大小,还有其他方法读者自行查看
ResourcePools resourcePools = resourcePoolsBuilder.heap(10, MemoryUnit.MB).build();
// CacheConfiguration 组装Cache的各个参数
// String.class,String.class Cache存放key和value的数据类型
// withExpiry() 设置信息在缓存中的存放的时间,有两种:1、TTL缓存自创建之时起至失效时的时间间隔;2、TTI缓存创建以后,最后一次访问缓存之时至失效之时的时间间隔
CacheConfiguration configuration =
CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, resourcePools)
.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(3L)))
.build();
// 创建缓存
// name 缓存名称,configuration 缓存配置
Cache cache = cacheManager.createCache("name", configuration);
// 存放一个数据
cache.put("a", "A");
// Cache还有其他方法,自行查看
// 取出数据
System.out.println(cache.get("a"));
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 数据经过一段时间,再次查看,发现数据为null
System.out.println(cache.get("a"));