您的位置:首页 > 编程语言 > Java开发

java缓存框架---ehcache简单实例

2017-01-16 19:23 741 查看
java缓存有很多,ehcache是比较流行的java缓存框架,它以简单,快速等特点受到广大开发人员的喜爱,下面是我参考了一些资料后整理的关于ehcache的简单实例,包括通过配置文件和java动态添加缓存,以下是详细代码:

一、通过使用API来动态的添加缓存(将缓存的配置信息通过java代码来实现而非写在配置文件)

package ehcache;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
/**
* 使用API来动态的添加缓存(将缓存的配置信息通过java代码来实现而非写在配置文件)
* @author Administrator
*
*/
public class EhCache1 {

public static void main(String[] args) {
//创建一个缓存管理器
CacheManager singletonManager = CacheManager.create();
//建立一个缓存实例
Cache memoryOnlyCache = new Cache("testCache", 5000, false, false, 5, 2);
//在内存管理器中添加缓存实例
singletonManager.addCache(memoryOnlyCache);
//在缓存管理器中获取一个缓存实例
Cache cache = singletonManager.getCache("testCache");
//使用获取到的缓存实例
Element element = new Element("key1", "value1");
cache.put(element);//添加缓存值
cache.put(new Element("key2", "value2"));//添加缓存值

int elementsInMemory = cache.getSize();//获取缓存个数
System.out.println("缓存个数======="+elementsInMemory);

// Object obj = element.getObjectValue();//获取对象值
// cache.remove("key1");//删除缓存

Cache cache2 = singletonManager.getCache("testCache");//获取缓存实例
Element element2 = cache2.get("key1");
System.out.println("value====="+element2.getValue());//获取缓存值
// singletonManager.shutdown();
}

}

二、通过配置文件ehcache.xml创建缓存实例



1.ehcache.xml

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">

<!-- 磁盘缓存位置 -->
<diskStore path="java.io.tmpdir/ehcache"/>

<!-- 默认缓存 -->
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>

<!-- helloworld1缓存 -->
<cache name="helloworld1"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="5"
timeToLiveSeconds="5"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>

<!-- helloworld2缓存 -->
<cache name="helloworld2"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="5"
timeToLiveSeconds="5"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>

</ehcache>2.java代码
package ehcache;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
/**
* 通过配置文件(ehcache.xml)来使用缓存
* @author Administrator
*/
public class EhCache2 {

public static void main(String[] args) {
//创建缓存管理器
final CacheManager cacheManager = new CacheManager();

// 创建一个缓存实例(在配置文件中获取一个缓存实例)
final Cache cache = cacheManager.getCache("helloworld1");

final String key = "greeting";

//他建一个数据容器
final Element putGreeting = new Element(key, "Hello, World!");

//将数据放入到缓存实例中
cache.put(putGreeting);

//取值
final Cache cache2 = cacheManager.getCache("helloworld1");
final Element getGreeting = cache2.get(key);

// Print the value
System.out.println("value======//========"+getGreeting.getObjectValue());
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息