1 EhCache 是什么
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点。主要面向通用缓存,Java EE和轻量级容器。可以和大部分Java项目无缝整合,例如:Hibernate中的缓存就是基于EhCache实现的。
EhCache支持内存和磁盘存储,默认存储在内存中,如内存不够时把缓存数据同步到磁盘中。EhCache支持基于Filter的Cache实现,也支持Gzip压缩算法。
EhCache直接在JVM虚拟机中缓存,速度快,效率高;
EhCache缺点是缓存共享麻烦,集群分布式应用使用不方便
官网:https://www.ehcache.org/
官方文档很特别,对于文档的代码还有对应标签的解释,十分贴心
2 代码实战 Demo
TestEH.java
public class TestEH {
public static void main(String[] args) {
InputStream input = TestEH.class.getClassLoader().getResourceAsStream("ehcache.xml");
CacheManager cacheManager = new CacheManager(input);
Cache cache = cacheManager.getCache("HelloWorldCache");
Element element = new Element("name", "zhang3");
cache.put(element);
Element element1 = cache.get("name");
System.out.println("缓存中数据 = " + element1.getObjectValue());
}
}
ehcache.xml
<ehcache>
<diskStore path&#61;"java.io.tmpdir/ehcache"/>
<defaultCache
maxEntriesLocalHeap&#61;"10000"
eternal&#61;"false"
timeToIdleSeconds&#61;"120"
timeToLiveSeconds&#61;"120"
maxEntriesLocalDisk&#61;"10000000"
diskExpiryThreadIntervalSeconds&#61;"120"
memoryStoreEvictionPolicy&#61;"LRU">
<persistence strategy&#61;"localTempSwap"/>
defaultCache>
<cache name&#61;"HelloWorldCache"
maxElementsInMemory&#61;"1000"
eternal&#61;"false"
timeToIdleSeconds&#61;"5"
timeToLiveSeconds&#61;"5"
overflowToDisk&#61;"false"
memoryStoreEvictionPolicy&#61;"LRU"/>
ehcache>