1、需要echache的jar包

2、需要配置文件ehcache.xml和ehcache.xsd,主要是在ehcache.xml中进行配置

3、修改配置文件ehcache.xml  ,例如添加配置如下:

    <cache name="memoryCache"
maxElementsInMemory="500" <!-- 最大缓存数量 -->
eternal="true" <!-- 在内存中永久存在,由于此处设置为true,所以以下两个参数无效 -->
timeToIdleSeconds="3600"
timeToLiveSeconds="7200"
overflowToDisk="false"/> <cache name="reportCache"
maxElementsInMemory="500"
eternal="false" <!-- 不在内存中永久存在 -->
timeToIdleSeconds="3600" <!-- 一个小时之内不再用到这个缓存就清理 -->
timeToLiveSeconds="7200" <!-- 两个小时以后不管是否用到这个缓存都会被清理 -->
overflowToDisk="false"/> <!-- 当超过500是不会写入磁盘 --> <cache name="diskCache" <!-- 以上两种都是内存缓存,这里配置的是磁盘缓存 -->
maxElementsInMemory="10000"
overflowToDisk="true" <!-- 当内存中超过10000, 就写入磁盘 -->
eternal="false"
memoryStoreEvictionPolicy="LRU" <!-- 这里配置的是清除缓存时的策略 -->
maxElementsOnDisk="10000000"
diskExpiryThreadIntervalSeconds="600"
timeToIdleSeconds="3600"
timeToLiveSeconds="100000"
diskPersistent="false" /> <!-- 不是磁盘永存 -->

这里就建立了三种缓存形式

4、可以建立一个或者多个独立的类,用于对应配置文件中的配置,例如:

package com.cetc32.cache;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element; public class ReportCache {
private static ReportCache reportCache = null;
private static Cache cache = null; //实现单例模式
public static ReportCache getInstance() {
if(reportCache == null) {
reportCache = new ReportCache();
}
return reportCache;
} //private Cache cache; public ReportCache() {
String path = this.getClass().getResource("/config/ehcache.xml").getFile(); CacheManager manager = CacheManager.create(path);
cache = manager.getCache("reportCache");
} /**
* 设置缓存
* @param key
* @param o
*/
public void setReportCache(String key, Object o) { Element element = new Element(key, o);
cache.put(element); } /**
* 从缓存中获得结果
* @param key
* @return
*/
public Object getReportCache(String key) {
Element aa = cache.get(key);
Object r = null;
if (aa != null) {
r = aa.getObjectValue();
}
return r; } /**
* 清除某个缓存
* @param key
*/
public boolean removeReportCache(String key) {
return cache.remove(key);
} /**
* 清空全部缓存
*/
public void removeAllReportCache() {
cache.removeAll();
} /**
* @return the cache
*/
public Cache getCache() {
return cache;
} }

这里采用的是单例模式,应用中一个实例即可

6、在程序中使用 ReportCache reportCache = ReportCache.getInstance(); 获取实例就可以进行缓存操作了。

echache缓存的简单使用方法的更多相关文章

  1. C#中缓存的简单方法及使用Sql设置缓存依赖项

    概述 使用Cache高速缓存可以提高数据的读取速度,减少服务器与客户端之间的数据交互.因为Cache一经创建就会占用服务器上的资源,所以Cache并不是越多越好,一般用于数据较固定,使用较频繁的地方. ...

  2. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

  3. [转]分享php中四种webservice实现的简单架构方法及实例

    FROM : http://www.itokit.com/2012/0417/73615_2.html 本人所了解的webservice有以下几种:PHP本身的SOAP,开源的NUSOAP,商业版的P ...

  4. 分享php中四种webservice实现的简单架构方法及实例

    一:PHP本身的SOAP所有的webservice都包括服务端(server)和客户端(client).要使用php本身的soap首先要把该拓展安装好并且启用.下面看具体的code首先这是服务端实现: ...

  5. 分享php中四种webservice实现的简单架构方法及实例(转)

    本人所了解的webservice有以下几种:PHP本身的SOAP,开源的NUSOAP,商业版的PHPRPC,以及使用二进制传输数据流的 HessianPHP,那么一下就简单的介绍下这几种webserv ...

  6. 分享php中四种webservice实现的简单架构方法及实例[转载]

    [转载]http://www.itokit.com/2012/0417/73615.html 本人所了解的webservice有以下几种:PHP本身的SOAP,开源的NUSOAP,商业版的PHPRPC ...

  7. Nginx负载均衡配置简单配置方法

    http://www.jb51.net/article/121235.htm Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器.下面通过 ...

  8. 一个极为简单的方法实现本地(离线)yum安装rpm包

    首先,我要关心的问题仍然是如何离线或者本地yum安装rpm包?这其中的关键当然是获取rpm包到本地,这其中的麻烦事是去解析依赖关系.然而,我发现一个极为简单的方法可以不用操心rpm包依赖关系,不多不少 ...

  9. iOS 处理缓存的三种方法

    缓存处理是个相当头疼的事情,要根据需要综合应用不同的策略.总的来说有以下几种情况: 1.URL缓存,例如社交应用的帖子浏览,要在viewDidAppear:里面进行URL缓存.简单来说就是用NSURL ...

随机推荐

  1. STL常用的容器

    vector:相当于一个不定长数组. vector的扩充机制是按照现在容量的一倍进行增长,每次增长是重新申请一块更大的心内存,并把现在容器中的元素逐个复制过去,然后销毁旧的内攒 1.头文件: #inc ...

  2. nyoj677 谍战

    本题能够说是最小割入门级题目. 假设能想到是最小割问题.那么建图思路便是水到渠成的事了. 加入一个源点S和汇点T: 把S与每一个间谍相连.容量为无穷大: 把城市N(即飞机场的位置)与汇点T相连.容量为 ...

  3. Docker学习(2Docker基本命令 )

    1.首先我们需要明确在docker中需要了解的一些基础知识 Docker虚拟化有三个概念需要理解,分别镜像.容器.仓库. 1) 镜像:docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个 ...

  4. java笔记十:java中的反射

    Java中,反射是一种强大的工具.它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接.反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而 ...

  5. hdu 4617 Weapon【异面直线距离——基础三维几何】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4617 Weapon Time Limit: 3000/1000 MS (Java/Others)     ...

  6. MogoDB 分片键

    MongoDB 根据分片键分割 collection 中的文档,然后分配到分片集群的成员中. 分片键可以是一个存在于每个文件中的索引字段或者复合索引字段. MongoDB 使用不同范围的分片键值来分割 ...

  7. 防sql注入之参数绑定 SQL Injection Attacks and Defense

    http://php.net/manual/zh/pdo.prepared-statements.php 预处理语句与存储过程 很多更成熟的数据库都支持预处理语句的概念.什么是预处理语句?可以把它看作 ...

  8. 高德地图API使用

    1.根据地址找经纬度/修改经纬度 marker.setPosition(result.geocodes[0].location); map.setCenter(marker.getPosition() ...

  9. JS续

    JS中的事件 [JS中的事件分类] * 1.鼠标事件: * click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup * * 2.键盘事 ...

  10. cxGrid时间格式与导出Excel

    引用cxFormats单元: ShortDateFormat := 'dd/mm/yyyy'; DateSeparator := '/'; cxFormatController.UseDelphiDa ...