EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
官网:http://ehcache.org/
我下载的版本是2.6.6,通过maven下载的,官网有各个版本详细的文档,开发教程。
<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.6.6</version> </dependency>
在eclipse中构建maven工程EhcacheTest项目,加入如上依赖,
按照官网文档开始测试
CacheManager singletonManager = CacheManager.create(); singletonManager.addCache("testCache"); Cache cache = singletonManager.getCache("testCache"); Element element = new Element("key1", "value1"); cache.put(element); Element e = cache.get("key1"); System.out.println(e.getObjectValue());
运行这段代码发现报错:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. value1
上网找原因发现是slf4j和log4j冲突,解决办法,可以添加一个解决冲突的依赖:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency>
就不会报错了。
Ehcache使用CacheManager来管理Cache,Cache就是我们用来缓存数据的类。
下面先来说说CacheManager的几种创建方法:
根据官网文档显示,2.5之前的版本是允许相同名称的多个CacheManager存在同一个JVM中,所以,每次new CacheManager(...)会创建一个新的CacheManager,而不会关心是否已经有存在的CacheManager,这将会加大系统内存消耗,因为根本没必要,我们用来缓存数据的是Cache,而管理Cache的CacheManager不需要每次创建,new一个新的出来。
所以Ehcache在2.5之后中的版本中不再允许同名的多个CacheManager存在同一个JVM中,使用CacheManager.create()来返回一个已经存在的单例的
CacheManager,如果没有,则创建一个单例的CacheManager。
创建单例的CacheManager,官方提供了四种方法:
1.
CacheManager.newInstance(Configuration configuration);
根据配置创建一个新的CacheManager单例实例,或返回一个已经存的配置的实例。
2.
CacheManager.create();
根据系统默认的配置,创建一个新的CacheManager单例实例,或返回一个已经存在的单例。此方法类似于
CacheManager.getInstance();
3.
CacheManager.create(Configuration configuration);
根据已经配好的配置创建一个新的CacheManager单例实例,或返回一个已经存的配置的实例。
4.
new CacheManager(Configuration configuration)
创建一个新的CacheManager,如果同名的实例已经存在或配置参数为空,会抛出一个异常。
下面来使用CacheManager,Cache来测试缓存数据:
1.使用默认的CacheManager测试,即系统自带的配置ehcache.xml在官方jar包中,有个默认配置。
CacheManager singletonManager = CacheManager.create(); singletonManager.addCache("testCache"); Cache cache = singletonManager.getCache("testCache"); Element element = new Element("key1", "value1"); cache.put(element); Element e = cache.get("key1"); System.out.println(e.getObjectValue());
结果:value1
2.使用自定义的配置CacheManager测试,ehcache.xml配置文件如下:
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd"> <diskStore path="d:\ehcache"/> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" maxElementsOnDisk="10000000" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"> <persistence strategy="localTempSwap"/> </defaultCache> <cache name="sampleCache1" maxElementsInMemory="1" maxElementsOnDisk="10000" eternal="false" overflowToDisk="true" diskSpoolBufferSizeMB="20" diskPersistent="true" timeToIdleSeconds="43200" timeToLiveSeconds="86400" memoryStoreEvictionPolicy="LFU" /> </ehcache>
java代码:
CacheManager manager = CacheManager.create("src/main/java/ehcache.xml"); Cache cache = manager.getCache("sampleCache1"); Element element = new Element("key1", "value1"); cache.put(element); Element e = cache.get("key1"); System.out.println(e.getObjectValue());
结果:value1
3.Ehcache是一个进程式的缓存,用完可以关闭它:
manager.shutdown();
Ehcache还有很多其它方法,官网文档很详细,以后深入使用,比如与Srping集成等。
相关推荐
**Ehcache 入门详解** Ehcache 是一个开源的、高性能的缓存解决方案,广泛应用于Java应用程序中,能够显著提升数据访问速度并降低数据库负载。本文将深入讲解如何自己编写泛型通用的Ehcache配置和使用,让你更好地...
在这个“ehcache缓存入门项目”中,我们将深入探讨EhCache的基本概念、配置、使用方法以及一些实用技巧。 1. **EhCache简介** EhCache是一个基于内存的分布式缓存解决方案,它可以存储对象并提供快速访问。它支持...
本入门案例将带你了解如何使用Ehcache实现分布式缓存,并特别关注如何将文件数据转换为树形结构。 首先,让我们理解Ehcache的基本概念。Ehcache的核心组件包括缓存管理器(Cache Manager)、缓存(Cache)和缓存项...
Ehcache是一款广泛使用的Java缓存库,特别适合于提高CPU和I/O密集型应用程序的性能,同时增强应用的可扩展性。它由Adam Murdoch在为SourceForge项目创建页面时灵感突发命名,因其名字是回文而得名。Ehcache自版本...
在本篇《Mybatis入门实例(二)——添加ehcache缓存支持》中,我们将深入探讨如何在Mybatis框架中集成Ehcache作为二级缓存,以提高数据访问的效率和性能。Ehcache是一个开源的Java分布式缓存,广泛用于缓存应用程序中...
本文将深入探讨如何将Ehcache与Spring进行整合,以提高应用程序的性能和效率,主要基于提供的"spring+ehcache"入门级别的demo。我们将通过JUnit进行测试,确保整合过程正确无误。 **一、Spring与Ehcache的整合** 1...
Ehcache是一个开源的、高性能的Java缓存库,它为应用程序提供...- `README.txt`:快速入门指南和项目相关信息。 通过这些资源,开发者可以深入了解Ehcache的功能,快速在项目中集成和配置Ehcache,以提升系统的性能。
Spring MVC 和 Ehcache 是两个在Java Web开发中广泛使用...这个“springmvc+ehcache简单例子”提供了入门实践,帮助开发者快速理解和掌握这两个技术的集成。在实际项目中,还需要根据具体需求进行更深入的优化和调整。
#### 三、入门指南 - **通用缓存**:介绍如何在任何Java应用中快速启用Ehcache的基本步骤。 - **Hibernate集成**:指导开发人员如何将Ehcache与Hibernate结合使用,以提高查询性能。 - **J2EE Servlet缓存**:提供...
#### 四、入门指南 ##### 3.1 通用缓存 介绍了如何使用Ehcache进行通用缓存操作的基础知识。 ##### 3.2 Hibernate集成 讲解了如何将Ehcache与Hibernate框架集成以实现二级缓存。 ##### 3.3 Java EE Servlet缓存 ...
这个压缩包包含了一个完整的、可以直接运行的SSH+Ehcache整合项目,为开发者提供了一个快速入门和学习的实例。通过研究这个项目,你可以深入了解这些技术的集成方式以及它们在实际项目中的应用。
- `QUICK-START.html`:这个文件提供了Ehcache的快速入门教程,指导用户如何快速集成Ehcache到他们的Java应用中,包括添加依赖、配置缓存和使用缓存API。 5. **许可证信息**: - `licenses`目录:包含了Ehcache...
标题中的“axis webservic ehcache.zip”是一个包含 Axis Web服务和Ehcache集成的入门示例的压缩文件。Axis是Apache软件基金会开发的一个开源Web服务框架,它用于创建和部署SOAP(简单对象访问协议)服务。Ehcache则...
本教程将带你入门NoSQL的世界,特别是聚焦于Redis、Memcached和EnCache这三种流行的数据存储系统。 **Redis** 是一个开源的、基于键值对的数据存储系统,支持多种数据结构如字符串、哈希、列表、集合和有序集合。它...
### 三、应用实践:从入门到精通 #### 3.1 通用缓存应用 无论是常规数据缓存、Hibernate框架整合还是Java EE Servlet缓存,Ehcache均能提供简便而强大的解决方案。JCACHE风格的缓存机制进一步拓展了其适用范围。 ...
在本文中,我们将探讨Ehcache的基本概念以及如何在项目中进行入门级的配置和使用。 1. **Ehcache的特点** - **内存优先**:Ehcache主要基于内存缓存,提供高速的数据存取。 - **磁盘辅助**:当内存中的缓存达到...
Ehcache 3.x产品线目前是开发产品线。 生成状态: 有关更多信息,您可能需要查看 。 新API入门 有关示例,文档和使用信息,请访问 。 当前的版本 我们于2020年8月25日发布了3.9.0。 包含指向工件和文档的链接,以...
本篇文章将详细讲解基于Spring、SpringMVC、MyBatis、SpringSecurity、EhCache和JCaptcha这六大组件构建的Web框架。 1. **Spring**: Spring作为整个框架的核心,提供了依赖注入(DI)和面向切面编程(AOP)等特性...
### JAVA缓存入门文档:EHCache #### 一、EHCache简介 EHCache 是一个纯 Java 缓存实现,主要用于提高应用程序性能。它通过在内存中缓存数据来减少对数据库或其他外部系统的调用次数,从而加快应用响应速度。...
- **Caching**:为了提高性能,可以集成缓存机制,如 EhCache 或 Redis,存储用户权限信息。 - **Session 共享**:在分布式系统中,需要处理跨服务器的会话共享问题,Shiro 提供了基于 Redis 的 Session Manager ...