Ehcache(1)

原创 2015年11月23日 12:49:10

    Ehcache是一个Java的缓存框架,当应用需要使用到缓存的时候,可以使用,它的操作也方便,下面介绍一下它的用法

一.CacheManager

    1.配置文件

        首先在src下面放一个ehcache.xml文件,内容如下
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" >
	
    <diskStore path="java.io.tmpdir"/>

    <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="true"
            maxElementsOnDisk="10000000"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"
            
            />
    <cache name="cache1"
           maxElementsInMemory="10000"
           maxElementsOnDisk="1000"
           eternal="false"
           overflowToDisk="true"
           timeToIdleSeconds="20"
           timeToLiveSeconds="20"
           memoryStoreEvictionPolicy="LFU"
            />
	
</ehcache>
        后面再仔细介绍这个文件

    2.cacheManager的创建

    CacheManager,顾名思义,是用来管理Cache的,每个CacheManager可以对应多个Cache,所以第一步是获取一个CacheManager的对象,CacheManager有几个构造方法

    

    CacheManager(Configuration):该构造方法接收一个Configuration对象

    CacheManager(String):该构造方法接收一个有配置文件路径信息的字符串

    CacheManager(URL):该构造方法接收一个指向配置文件的URL对象

    CacheManager(URL):该构造方法接收一个指向配置文件的输入流

    CacheManager():该构造方法无参数,默认加载路径下的名为ehcache.xml的配置文件


    创建一个CacheManager的对象有几种方法:

        1).使用new创建一个对象

            该方法创建一个全新的对象

        2).使用CacheManager的静态方法newInstance方法创建一个对象

            CacheManager中有5个newInstance方法,参数类似和构造方法一样,newInstance方法首先会看是否存在同名的CacheManager对象,如果             存在,则返回,没有则创建一个新的对象

           源码如上,所有的newInstance方法都会调用这个newInstance方法,其中判断是否有同名的对象,没有则使用new创建            一个新的对象

        3).使用CacheManager的静态方法create方法创建一个对象

            create方法也有5个,和newInstance对应,CacheManager中有一个名为singleton的对象,每次调用create方法时,首先判断该对象是否             已经存在,如果已经存在则返回,如果不存在,则调用newInstance,并把返回的值赋给singleton,再返回该对象

        4).使用CacheManager的静态方法getInstance方法创建一个对象

            这个方法调用create方法

    3.cacheManager操作Cache   

	public static void main(String[] args) throws IOException {
		CacheManager cacheManager = new CacheManager();
		//通过name获取对应的cache
		Cache cache1 = cacheManager.getCache("cache1");// 参数为配置文件中<cache>中的name
		
		// 添加一个cache到CacheManager中
		cacheManager.addCache("cache2");// 添加一个name为cache2的节点,属性继承defaultCache
		System.out.println(cacheManager.getActiveConfigurationText());// 打印出ehcache.xml文件中的内容,会发现多出一个cache2节点
		
		Cache cache3 = new Cache("cache3", 10001, true, true, 100, 100);
		cacheManager.addCache(cache3);//必须添加到CacheManager才有效
		System.out.println(cacheManager.getActiveConfigurationText());// 打印出ehcache.xml文件中的内容,会发现多出一个cache3节点
		
		cache3.put(new Element("test",new Integer(1)));// 将一个对象放到cache3中,名为test
		cache1.put(new Element("test",new Integer(1)));// 将一个对象放到cache1中,名为test
		// 清除所有cache中的所有对象
		cacheManager.clearAll();
		
		System.out.println(cache1.get("test"));// 清除后为null,下同
		System.out.println(cache3.get("test"));
		
		//移除名为cache2的cache
		cacheManager.removeCache("cache2");
		//移除所有cache
		cacheManager.removalAll();
	}





版权声明:本文为博主原创文章,未经博主允许不得转载。

ehcache1.2.3版本BUG

版本冲突解决
  • chenjunan888
  • chenjunan888
  • 2017年04月09日 22:27
  • 429

Ehcache学习(1)_Ehcache简介

解 压缩
  • yuanlaishini2010
  • yuanlaishini2010
  • 2014年05月20日 21:03
  • 459

EHCache(1)

 一、缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。 EhCache 应用架构图...
  • wodetiankong516
  • wodetiankong516
  • 2014年03月26日 23:41
  • 1891

Ehcache的并发支持

在高并发的情况下, 使用Ehcache缓存时, 由于并发的读与写, 我们读的数据有可能是错误的, 我们写的数据也有可能意外的被覆盖. 所幸的是Ehcache为我们提供了针对于缓存元素Key的Read(...
  • py_xin
  • py_xin
  • 2016年10月18日 11:56
  • 2060

关闭ehcache的更新检查

不知道ehcache玩的什么套路,竟然还做了个更新检查在核心里面,而且还是默认开启的,而且还会爆io异常,还是把它关了吧: ...
  • xiangyong882000
  • xiangyong882000
  • 2015年01月04日 14:08
  • 451

Java中 ehcache简单使用实例

ehcache 简单实用介绍 Java中常用的本地缓存,入门级文章。 将数据缓存至本地的简单方法。简单实用的java 本地缓存框架。 使用步骤:1、添加jar包  2、在src下添加配置文件 ehca...
  • haoshaoxing
  • haoshaoxing
  • 2015年05月14日 18:04
  • 1981

Ehcache缓存入门实战(附源码)

Ehcache缓存入门实战(附源码)Ehcache是一个强大、成熟的Java缓存框架,可以非常容易与其他库和框架集成。官网声称Ehcache可以作为TB级别的数据缓存,并且具有高扩展性。目前Ehcac...
  • u011116672
  • u011116672
  • 2016年08月11日 16:49
  • 3492

Java缓存Ehcache-核心类和方法介绍及代码实例

Ehcache中核心类和方法   EhCache里面有一个CacheManager类型,它负责管理cache。Cache里面存储着Element对象,Element必须是key-value对。Cach...
  • xiajun07061225
  • xiajun07061225
  • 2014年09月27日 15:52
  • 30970

Ehcache使用(一):初步使用Ehcache

Ehcache是一个很强大的轻量级框架,不依赖除了slf4j以外的任何包,这篇文章主要是了解一下ehcache的简单使用,对Ehcache做一个简单了解 首先要了解缓存清除策略,官方文档给出的有 ...
  • u010351766
  • u010351766
  • 2016年08月04日 16:36
  • 7552

生产环境ehcache迁移到集中式redis集群

原先项目中使用的ehcache分布式缓存,缺点是浪费内存,并且ehcache使用的是jvm进程的内存,因此内存使用很受限制。 还有就是业务中有时希望更新一个业务实体来使对应的缓存失效的场景,这种情况...
  • zhaozhenzuo
  • zhaozhenzuo
  • 2015年05月18日 21:21
  • 2293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ehcache(1)
举报原因:
原因补充:

(最多只允许输入30个字)