EhCache纯java的内存缓存框架
缓存的速度比较快,比数据库还要快,所以一般可以用户判断重复的数据或url
Maven引入ehcache的jar包
<dependencies>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.3</version>
</dependency>
</dependencies>
ehcache配置文件
ehcache.xml
配置持久化硬盘
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<!--
磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
path:指定在硬盘上存储对象的路径
-->
<diskStore path="C:\ehcache" />
<!--
defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理
maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象
eternal:true代表对象是否永不过期
overflowToDisk:当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中
-->
<defaultCache
maxElementsInMemory="100"
eternal="true"
overflowToDisk="true"/>
<!--
maxElementsInMemory设置成1,overflowToDisk设置成true,只要有一个缓存元素,就直接存到硬盘上去,断电保护
eternal设置成true,代表对象永久有效
maxElementsOnDisk设置成0 表示硬盘中最大缓存对象数无限大
diskPersistent设置成true表示缓存虚拟机重启期数据
-->
<cache
name="a"
maxElementsInMemory="1"
eternal="true"
overflowToDisk="true"
maxElementsOnDisk="0"
diskPersistent="true"/>
</ehcache>
public class EhcacheTest {
public static void main(String[] args) {
// 根据ehcache.xml配置文件创建Cache管理器
CacheManager manager=CacheManager.create("./src/main/resources/ehcache.xml");
Cache c=manager.getCache("a"); // 获取指定cache
Element e=new Element("java","xx");//cache存元素
c.put(e); // 把一个元素添加到Cache中
Element e2=c.get("java"); // 根据key获取缓存元素
System.out.println(e2);
System.out.println(e2.getObjectValue());
c.flush(); // 刷新缓存到内存或硬盘中
manager.shutdown(); // 关闭缓存管理器释放内存
}
}