EhCache问题求助

SandKing 发布于 2012/07/13 16:47
阅读 318
收藏 0

我在EhCache配置文件中指定的最大缓存对象数为1个,为什么我执行打印的时候会有2个呢!EhcaChe超出的最大缓存数不是会把该对象清除么?

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false">
	<diskStore path="java.io.tmpdir/EhCacheSpringAnnotationsExampleApp"/>
	<defaultCache
		maxElementsInMemory="10000"
		eternal="false"
		timeToIdleSeconds="120"
		timeToLiveSeconds="120"
		overflowToDisk="true"
		maxElementsOnDisk="10000000"
		diskPersistent="false"
		memoryStoreEvictionPolicy="LRU"
		/>
     
	<cache name="itemSearchCache1"
		maxElementsInMemory="1"
		eternal="false"
		timeToIdleSeconds="120"
		timeToLiveSeconds="120"
		overflowToDisk="true"
		maxElementsOnDisk="10000000"
		diskPersistent="false"
		memoryStoreEvictionPolicy="LRU"
		/>
</ehcache>

Java代码

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

public class Test {
	public static void main(String[] args) {
		CacheManager manager = CacheManager.create("src/config/ehcache.xml");
		Cache cache = manager.getCache("itemSearchCache1");
		{
			User user = new User(1, "sadking1");
			Element element = new Element("key1", user);
			cache.put(element);
		}

		{
			User user = new User(1, "sadking2");
			Element element = new Element("key2", user);
			cache.put(element);
		}
		try {
			Thread.sleep(10000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("缓存对象数 : " + cache.getSize());
		{
			Element elem = cache.get("key1");
			User yhb = (User) elem.getValue();
			System.out.println(yhb.getName());
		}
		{
			Element elem = cache.get("key2");
			User yhb = (User) elem.getValue();
			System.out.println(yhb.getName());
		}
	}
}

 

 

加载中
0
SandKing
SandKing
还没人来呢,怎么就掉了!自己顶一个
0
SandKing
SandKing
还没人,再顶下
0
喜之郎
喜之郎
 你可以试试设置为100,然后看看实际上是不是有101个。 ,程序员喜欢从0开始计数,如果是1那就是两个。
0
SandKing
SandKing

引用来自“喜之郎”的答案

 你可以试试设置为100,然后看看实际上是不是有101个。 ,程序员喜欢从0开始计数,如果是1那就是两个。
我是正经求助呢
0
六只
六只
如果我没记错的话,这个函数返回的并不是"活着"的对象,好像是总数量,你查下官方文档。而且性能好像也不太好。
返回顶部
顶部