Ehcache(2)

二.配置文件ehcache.xml

    首先,我们需要一个配置文件ehcache.xml(名字可以改变),主要内容如下
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">


</ehcache>
    这是根节点的两个标签,我们配置的内容在这里面,主要介绍一下几个常用标签

    1.diskStore

        指定磁盘的存储路径

    2.defaultCache

        默认的cache配置,如果创建了一个没有指定属性的cache,那么将默认继承该配置

    3.cache

        cache的配置,在其中指定这个cache的属性
    
    标签下有这些属性,
    maxElementsInMemory:缓存最大的元素个数
    eternal:默认为false,如果为true,则忽略timeToIdleSeconds和timeToLiveSeconds,cache中的元素不会过期
    timeToIdleSeconds:表示一个元素所允许闲置的最大时间,也就是说一个元素在不被请求的情况下允许在缓存中待的最大时间。默认是0,表示不限制
    timeToLiveSeconds:单位是秒,表示无论一个元素闲置与否,其允许在Cache中存在的最大时间。默认是0,表示不限制
    overflowToDisk:默认为false,当内存里面的缓存已经达到预设的上限时是否允许将按驱除策略驱除的元素保存在磁盘上了,如果为false则表示元素不会到磁盘盘上,只会在内存中
    maxElementsOnDisk:磁盘中最大的元素数量
    diskExpiryThreadIntervalSeconds: 单位是秒,表示多久检查元素是否过期的线程多久运行一次,默认是 120
    memoryStoreEvictionPolicy:采用的驱除策略
    copyOnWrite:默认为false。当设置为true时,读入缓存中的是该对象的一个备份
    copyOnRead:默认为false。当设置为true时,从缓存中取出的时候是缓存中对象的一个备份

    下面写个程序说明一下copyOnWrite和copyOnRead
		CacheManager cm = new CacheManager();
		Cache c1 = cm.getCache("cache1");// cache1的copyOnRead为true,copyOnWrite为true
		Element e1 = new Element("e1", new Integer(1));
		c1.put(e1);// 根据copyOnWrite,放入缓存中的是e1的拷贝对象
		Element e11 = c1.get("e1");
		System.out.println(e1 == e11);// false

		Cache c2 = cm.getCache("cache2");// cache2的copyOnRead为true,copyOnWrite为false
		Element e2 = new Element("e2", new Integer(1));
		c2.put(e2);// 根据copyOnRead,从缓存中取出的是内存中对象拷贝对象
		Element e22 = c2.get("e2");
		System.out.println(e2 == e22);// false

		Cache c3 = cm.getCache("cache3");// cache2的copyOnRead为false,copyOnWrite为true
		Element e3 = new Element("e3", new Integer(1));
		c3.put(e3);// 根据copyOnWrite,放入缓存中的是e1的拷贝对象
		Element e33 = c2.get("e3");
		System.out.println(e3 == e33);// false



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值