先直接上代码,后续有时间进行更新。
<properties>
<java.version>1.8</java.version>
<ehcache.version>3.8.0</ehcache.version>
<fastjson.version>1.2.62</fastjson.version>
</properties>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>${ehcache.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
java使用例子
import com.alibaba.fastjson.JSONObject;
import org.ehcache.Cache;
import org.ehcache.CacheManager;
import org.ehcache.config.builders.*;
import org.ehcache.config.units.MemoryUnit;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
public class ECacheUtils {
private static final Cache<String, String> defaultCache;
static {
CacheManager cacheManager = CacheManagerBuilder
.newCacheManagerBuilder()
.with(CacheManagerBuilder.persistence(System.getProperty("user.dir")))
.build();
cacheManager.init();
defaultCache = cacheManager.createCache("defaultCache",
CacheConfigurationBuilder.newCacheConfigurationBuilder(
String.class, String.class,
ResourcePoolsBuilder
.heap(4096)
.offheap(128, MemoryUnit.MB)
.disk(2, MemoryUnit.GB)
).withExpiry(
ExpiryPolicyBuilder.timeToLiveExpiration(Duration.of(300, ChronoUnit.SECONDS))
));
}
public static void set(String key, Object value) {
defaultCache.put(key, JSONObject.toJSONString(value));
}
public static <T> T get(String key, Class<T> clazz) {
String value = defaultCache.get(key);
return JSONObject.parseObject(value,clazz);
}
public static void delete(String key) {
defaultCache.remove(key);
}
}