echache缓存的简单使用方法

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(); 获取实例就可以进行缓存操作了。

时间: 2024-10-11 12:00:36

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

jQuery中ajax的使用与缓存问题的解决方法

jQuery中ajax的使用与缓存问题的解决方法 1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的) 防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的] 设计WEB页面的时候 也应该遵守这个

Nginx专题: upstream模块和缓存的简单使用

Nginx专题: upstream模块和缓存的简单使用 前言: 本文接着上篇Nginx专题: 从编译安装到URL重写来介绍Nginx的负载均衡模块使用方法, 本文的实验没有考虑大多数情况, 例如两个web服务器之间的数据同步等, 主要写Nginx如何作为负载均衡器使用并且缓存 实验拓扑 实验环境 主机 IP地址 功用 lb.anyisalin.com 172.16.1.2 负载均衡并缓存静态资源 web1.anyisalin.com 172.16.1.3 提供web服务 web2.anyisal

使用NSURLProtocol实现UIWebView的离线缓存的简单实现

文章介绍了使用NSURLProtocol实现UIWebView的离线缓存的简单实现,你可以在github上下载这个demo的代码. 无论是"MKNetworkKit"还是"AFCache"实现的缓存都过于复杂,而他想要的是一个简单机制: 1.你使用了UIWebView指向来显示一个有图像嵌入的网站. 2.当你的设备online时,你有正常的缓存算法. 3.当你的设备offline时,你可以显示页面的最后一个版本. 这个demo里做了一个很简单的测试:将cnn.com

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

一:PHP本身的SOAP所有的webservice都包括服务端(server)和客户端(client).要使用php本身的soap首先要把该拓展安装好并且启用.下面看具体的code首先这是服务端实现: PHP Code复制内容到剪贴板 <?php class test { function show() { return 'the data you request!'; } } function getUserInfo($name) { return 'fbbin'; } //实例化的参数手册上

ASP.Net 更新页面输出缓存的几种方法

ASP.Net 自带的缓存机制对于提高页面性能有至关重要的作用,另一方面,缓存的使用也会造成信息更新的延迟.如何快速更新缓存数据,有时成了困扰程序员的难题.根据我的使用经验,总结了下面几种方法,概括了常见的几种情况,如有更好的方法欢迎补充. (1)代码级缓存(对象缓存) Cache 对象 Cache 对象提供代码级的缓存,功能强大,可操作性强.更新这种缓存的方法很简单,只要调用 Cache.Remove(key) 方法就可以清除指定的缓存.代码如下: HttpRuntime.Cache.Remo

操作文件简单的方法

public void FileStream() { FileStream file; string fileName=AppDomain.CurrentDomain.BaseDirectory+"\\log.txt"; //应用程序根地址 if (!File.Exists(fileName)) { file = new FileStream(fileName, FileMode.Create); //创建文件 } else { file = new FileStream(fileNa

iOS 处理缓存的三种方法

缓存处理是个相当头疼的事情,要根据需要综合应用不同的策略.总的来说有以下几种情况: 1.URL缓存,例如社交应用的帖子浏览,要在viewDidAppear:里面进行URL缓存.简单来说就是用NSURLCache类,首先在AppDelegate.m里面的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions:方法里面创建一个NSURLC

MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2),如图: 2.网上的方法很多不实用,这里介绍一种最简单的方法来解决这个问题. # sudo /etc/i

php批量删除cookie的简单实现方法

这篇文章主要介绍了php批量删除cookie的简单实现方法,实例分析了删除单个cookie及数组遍历的方式批量删除cookie的技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了php批量删除cookie的简单实现方法.分享给大家供大家参考.具体实现方法如下: <?php //删除单个cookie:键值设置为空.时间设置为过期了的时间 setCookie("name","",time()-60); //删除多个cookie,采用遍历数组方式 foreac