ehcache的使用

一、EHCache主要特性

1. 快速. 
2. 简单. 
3. 多种缓存策略 
4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题 
5. 缓存数据会在虚拟机重启的过程中写入磁盘 
6. 可以通过RMI、可插入API等方式进行分布式缓存 
7. 具有缓存和缓存管理器的侦听接口 
8. 支持多缓存管理器实例,以及一个实例的多个缓存区域 
9. 提供Hibernate的缓存实现

二、EHCache使用步骤

hibernate中默认使用EHCache缓存框架,所以如果使用hibernate的时候可以直接使用EHCache。

1.创建cacheManager:

   CacheManager manager = CacheManager.create(); 

   cacheManager有多重创建方式,上面这种是使用了EHCache的默认参数。

2.创建cache并加入CacheManager:

   Cache cache = new Cache(name, maxElementsInMemory, overflowToDisk, eternal, timeToLiveSeconds, timeToIdleSeconds);

   manager.addCache(cache);

    name:缓存名称。

    maxElementsInMemory:设置基于内存的缓存可存放对象的最大数目。

    overflowToDisk:如果为true,表示当基于内存的缓存中的对象数目达到了maxElementsInMemory界限后,会把益出 的对象写到基于硬盘的缓存中。注意:如果缓存的对象要写入到硬盘中的话,则该对象必须实现了Serializable接口才行。

    eternal:如果为true,表示对象永远不会过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false; 

    timeToLiveSeconds:设定对象允许存在于缓存中的最长时间,以秒为单位。当对象自从被存放到缓存中后,如果处于缓存中的时间超过了 timeToLiveSeconds属性值,这个对象就会过期。当对象过期,EHCache将把它从缓存中清除。只有当eternal属性为false, 该属性才有效。如果该属性值为0,则表示对象可以无限期地存在于缓存中。timeToLiveSeconds必须大于timeToIdleSeconds 属性,才有意义。

    timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为单位。当对象自从最近一次被访问后,如果处于空闲状态的时间超过了timeToIdleSeconds属性 值,  这个对象就会过期。当对象过期,EHCache将把它从缓存中清空。只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示 对象可以无限期地处于空闲状态。

 3.使用cache

    Cache cache = manager.getCache(name);

   Element element = new Element(key,value);

   cache.put(element);

   Element element1 = cache.get(key);

   Object object = element1.getObjectValue();

   element中的存入的objectValue可以是字符串、对象或者集合等。如果直接存入自定义对象,就必须实现Serializable接口,如果对象放在集合中存入缓存则可以不用Serializable接口。如果存入集合可以使用方法所接受的参数作为key。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值