EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,也是Hibernate中默认的CacheProvider。
归纳一下它大概具有一下几个特点:
1. 快速.
2. 简单.
3. 多种缓存策略
4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题
5. 缓存数据会在虚拟机重启的过程中写入磁盘
6. 可以通过RMI、可插入API等方式进行分布式缓存
7. 具有缓存和缓存管理器的侦听接口
8. 支持多缓存管理器实例,以及一个实例的多个缓存区域
9. 提供Hibernate的缓存实现
那么我们在开发中到底如何运用EhCache框架呢?
获取Ehcache相关jar包及帮助文档。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/** * maxElementsInMemory:缓存中允许创建的最大对象数
* eternal:缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期。
* timeToIdleSeconds:缓存数据的钝化时间,也就是在一个元素消亡之前,两次访问时间的最大时间间隔值, 这只能在元素不是永久驻留时有效,
* 如果该值是 0 就意味着元素可以停顿无穷长的时间。
* timeToLiveSeconds:缓存数据的生存时间,也就是一个元素从构建到消亡的最大时间间隔值,这只能在元素不是永久驻留时有效,
* 如果该值是0就意味着元素可以停顿无穷长的时间。 overflowToDisk:内存不足时,是否启用磁盘缓存。
* memoryStoreEvictionPolicy:缓存满了之后的淘汰算法
*
* @param args
*/
public static void main(String[] args) {
// 创建一个缓存管理器对象
CacheManager cacheManager = CacheManager.create();
// 命名缓存管理器
cacheManager.setName( "testCacheManager" );
// 创建一个指定缓存名称的缓存对象
Cache cache = new Cache( "testCache" , 4 , false , false , 1 , 1 );
// cache.setDisabled(true);
// 将缓存对象添加至缓存管理器
cacheManager.addCache(cache);
// cacheManager.shutdown();
System.out.println( "判断缓存管理器中是否存在指定的缓存对象:"
+ cacheManager.cacheExists( "testCache" ));
DiskStorePathManager disStoreManager = cacheManager
.getDiskStorePathManager();
System.out.println( "获取当前配置文件硬盘路径:"
+ disStoreManager.getFile( "testCache.xml" ));
Map<String, Object> map = new HashMap<String, Object>();
map.put( "name" , "tom" );
map.put( "sex" , "男" );
map.put( "age" , 1 );
// 注意:如果当前缓存对象设置了内存中最大缓存keyValue对象的话,如果超出时,则后面的覆盖前面的keyValue对象
cache.put( new Element( "cache1" , map));
cache.put( new Element( "cache2" , map));
cache.put( new Element( "cache3" , map));
Element element = new Element( "cache4" , map);
element.setTimeToLive( 1 );
cache.put(element);
String[] cacheNames = cacheManager.getCacheNames();
for ( int i = 0 ; i < cacheNames.length; i++) {
System.out.println( "缓存" + i + ":" + cacheNames[i]);
}
// System.out.println("当前活动的缓存配置文件内容:\n"
// + cacheManager.getActiveConfigurationText());
System.out.println( "缓存管理器对象是否命名:" + cacheManager.isNamed());
Cache testCahe = cacheManager.getCache( "testCache" );
System.out.println( "缓存的状态:" + testCahe.getStatus());
System.out.println( "缓存对象平均获取时间:" + testCahe.getAverageGetTime());
System.out.println( "获取缓存对象占用内存空间大小:" + testCahe.getMemoryStoreSize());
System.out.println( "获取缓存对象大小:" + testCahe.getSize());
System.out.println( "缓存是否关闭:" + testCahe.isDisabled());
System.out.println( "判断某一个缓存key是否存在在缓存中"
+ testCahe.isKeyInCache( "cache3" ));
System.out.println( "判断某一个缓存值是否缓存在对象中:" + testCahe.isValueInCache(map));
// 验证缓存对象是否禁用
if (!testCahe.isDisabled()) {
System.out.println( "判断缓存中某个对象是否过期:"
+ testCahe.isExpired(testCahe.get( "cache3" )));
} else {
System.out.println(testCahe.getName() + "缓存已关闭" );
}
System.out.println( "判断某一个key是否缓存在内存中:"
+ testCahe.isElementInMemory( "cache1" ));
System.out.println( "判断某一个key是否缓存在磁盘中:"
+ testCahe.isElementOnDisk( "cache1" ));
System.out.println( "\n" );
List cacheKey = cache.getKeys();
for ( int i = 0 ; i < cacheKey.size(); i++) {
Element cacheElement = testCahe.get(cacheKey.get(i));
System.out.println( "Key:" + cacheKey.get(i) + ",value:"
+ cacheElement.getObjectValue());
}
}
|
相关推荐
**缓存框架 Ehcache 学习笔记** Ehcache 是一个广泛使用的开源 Java 缓存框架,它在处理大量数据的高性能应用中扮演着重要角色。Ehcache 提供了本地内存缓存、磁盘存储以及分布式缓存的能力,使得应用程序能够快速...
Ehcache 是一个流行的 Java 缓存框架,提供了强大的缓存机制,帮助开发者提高应用程序的性能和可扩展性。 Ehcache 的配置主要包括 diskstore、defaultCache、cache 三个部分,这三个部分的配置将决定 ehcache 的缓存...
"基于SpringBoot+Layui搭建的学生管理系统,融合shiro安全框架和Ehcache缓存框架" 这个标题揭示了项目的核心技术栈和应用场景。SpringBoot是一个快速开发框架,用于简化Spring应用的初始搭建以及开发过程。Layui则是...
ehcache是一种广泛使用的Java缓存框架,用于提高应用程序性能,特别是在数据访问操作中。通过将数据存储在内存中,ehcache能够显著减少数据库查询次数,从而加快应用响应速度。本文将深入探讨ehcache.xml配置文件中...
ehcache,作为一款高性能的开源Java缓存框架,旨在简化缓存的管理和使用,为开发者提供了灵活且强大的缓存解决方案。 **主要特性:** 1. **快速**:ehcache通过高效的内存管理和优化的算法设计,确保数据读取和写入...
### Ehcache缓存框架知识点详解 #### 一、Ehcache简介 Ehcache是一个开源的、纯Java的缓存框架。它支持多种缓存机制,既可以作为本地缓存使用,也可以通过网络来共享缓存数据。Ehcache提供了一个简单易用的API,...
**Ehcache缓存系统详解** Ehcache是一款开源、高性能、轻量级的Java缓存框架,广泛应用于各种Java应用程序中,以提高数据访问速度并降低数据库负载。它的核心特性包括内存缓存、磁盘存储和分布式缓存,使得在大数据...
**EHCache缓存技术** EHCache是一款高性能、轻量级的Java缓存框架,它广泛应用于各种Java应用程序中,特别是需要提升数据访问速度和减少数据库负载的场景。EHCache是基于内存的,但同时支持持久化,能有效地提高...
**Spring+EhCache缓存实例详解** 在现代的Java企业级应用中,缓存技术扮演着至关重要的角色,它能够显著提升系统性能,减少数据库负载。Spring框架与EhCache的结合,为开发者提供了一种高效、易用的缓存解决方案。...
### Ehcache缓存配置详解 #### 一、概述 Ehcache是一款开源的、高性能的Java缓存框架,主要用于提高应用程序的性能。Ehcache支持多种缓存配置方式,包括...希望本文能够帮助开发者更好地理解和使用Ehcache缓存框架。
### ehcache缓存的配置详解 #### 一、ehcache简介 ehcache 是一款开源的高性能 Java 缓存框架,广泛应用于 Java 应用程序中,用于提高应用程序性能。通过在内存或磁盘中存储数据副本,ehcache 可以减少数据库访问...
2. 在Spring配置文件中配置Ehcache缓存管理器。 3. 在需要缓存的方法或类上添加`@Cacheable`、`@CacheEvict`等注解。 4. 可选:配置缓存切面,如`@EnableCaching`。 **5. 性能优化** - 选择合适的缓存策略(LRU、...
Ehcache是一种在Java环境中使用的进程内缓存框架,其主要特点包括效率高、易于使用、支持多种缓存策略、具备内存和磁盘的数据两段存储方式、数据持久化以及支持分布式缓存。此外,Ehcache还默认提供了与MyBatis和...
### Ehcache缓存配置详解 #### 一、引言 Ehcache 是一款开源的、高性能的 Java 缓存框架,被广泛应用于提高应用程序性能。它提供了多种灵活的配置方式来满足不同场景的需求,包括声明式配置、XML 配置、程序内部...
### EHCache缓存知识点详解 #### 一、EHCache简介 **EHCache** 是一个用 Java 实现的高效、简洁的缓存管理类库。它不仅适用于开发高性能的应用程序,而且由于其实现了线程安全,因此非常适合在多线程环境中使用。...
EHCache是一款开源的、高性能的、轻量级的Java缓存框架。它主要用于减少数据库访问次数,提高应用程序性能。EHCache支持读取只读(read-only)和读写(read/write)缓存,并且能够进行内存和磁盘级别的缓存,这确保...
本文档覆盖了EHCache的基本原理、配置方法、API使用、缓存策略以及与其他框架(如Spring)的整合。 20.3 读者对象 适合对Java开发有一定基础,需要理解和使用缓存技术的开发人员,尤其是对EHCache感兴趣或者已经在...
EhCache是一个流行的Java缓存框架,它以其高性能和轻量级特性而受到广泛使用,尤其在Hibernate中作为默认的CacheProvider。 **1. EhCache简介** EhCache是一个完全用Java编写的进程内缓存解决方案,它强调速度和...