进程内缓存框架 EhCache
- Author: Poechant
- Blog: blog.CSDN.net/Poechant
- Email: zhongchao.ustc#gmail.com (#->@)
- Date: February 27th, 2012
1. What the hell is EhCache?
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。EhCache 具有以下特点(摘自开源中国社区)。
- 快速
- 简单
- 多种缓存策略
- 缓存数据有两级:内存和磁盘,因此无需担心容量问题
- 缓存数据会在虚拟机重启的过程中写入磁盘
- 可以通过 RMI、可插入 API 等方式进行分布式缓存
- 具有缓存和缓存管理器的侦听接口
- 支持多缓存管理器实例,以及一个实例的多个缓存区域
- 提供 Hibernate 的缓存实现
2. 常用 API
构造函数
方法原型
public Cache(String name,
int maxElementsInMemory,
boolean overflowToDisk,
boolean eternal,
long timeToLiveSeconds,
long timeToIdleSeconds)
该构造函数是 EhCache 1.0 版本中的出现的,后续开发到 2.0 之后,出现了带有 CacheConfiguration 参数的构造函数,用法更强大。比如如下这个:
public Cache(CacheConfiguration cacheConfiguration,
RegisteredEventListeners registeredEventListeners,
BootstrapCacheLoader bootstrapCacheLoader)
用法可参见 EhCache 的 API Docs。
参数含义
-
name - 缓存的名称,
default`保留为默认缓存名称;
-
maxElementsInMemory
- 内存中的最大同时缓存元素个数;
-
overflowToDisk
- 是否持久化(使用磁盘);
-
eternal
- 对象是否永久有效(永不过期);
-
timeToLiveSeconds
- 对象从其创建开始计算的生存时间(秒);
-
timeToIdleSeconds
- 对象从其最后一次被访问开始计算的生存时间(秒)。
一般来说,只有 name
、maxElementsInMemory
和 timeToLiveSeconds
显式设置,其他的参数常根据其不同的类型而设置为 false
、0
等。
put 方法
方法原型
public final void put(Element element)
throws IllegalArgumentException,
IllegalStateException,
CacheException
参数含义
- element:所要存储的元素,可参见其定义 Element API Docs。它是 EhCache 中缓存的基本单元。
get 方法
方法原型
public final Element get(Object key)
throws IllegalStateException,
CacheException
参数含义
remove 方法
方法原型
public final boolean remove(Object key)
throws IllegalStateException
参数含义
3. 示例
源码
package com.sinosuperman.ehcache;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
public class Test {
public static void main(String[] args) {
String name = "Namespace";
int capacity = 500;
int refreshPeriod = 5000;
// Initialize EhCache
Cache cache = new Cache(name, capacity, false, false, refreshPeriod, 0);
cache.initialise();
System.out.println(
"Initialize EhCache: " +
" name: " + name +
" capacity: " + capacity +
" expire: " + refreshPeriod
);
// Set data into EhCache
String key1 = "Key";
String value1 = "Value";
Element element1 = new Element(key1, value1);
cache.put(element1);
System.out.println("Set (" + key1 + ", " + value1 + ") into EhCache.");
// Get data from EhCache
Element element2 = cache.get(key1);
String key2 = (String) element2.getObjectKey();
String value2 = (String) element2.getObjectValue();
System.out.println("Get (" + key2 + ", " + value2 + ") from EhCache.");
// Remove data from EhCache
if (cache.remove(key2)) {
System.out.println("Remove data with key = " + key2 + " successfully.");
}
// Get EhCache size
System.out.println("EhCache size is " + cache.getSize());
}
}
结果
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.
Initialize EhCache: name: Namespace capacity: 500 expire: 5000
Set (Key, Value) into EhCache.
Get (Key, Value) from EhCache.
Remove data with key = Key successfully.
EhCache size is 0
进一步了解
可以登陆 EhCache.org,他们的文档还蛮多的。Enjoy EhCache!
-
转载请注明来自“柳大的CSDN博客”: blog.CSDN.net/Poechant
-
分享到:
相关推荐
作为进程内缓存解决方案,EhCache能够在应用程序运行时存储数据,显著提高数据访问速度,减轻数据库负载,从而提升整体系统性能。 EhCache的核心功能包括: 1. **内存管理**:EhCache将数据存储在内存中,提供了对...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置: 主要的特性有: 1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 主要的特性有: 1. 快速. 2. 简单. 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。主要的特性有:1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题5. 缓存...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 主要的特性有: 1. 快速. 2. 简单. 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心...
Java缓存框架 EhCache EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 从之前发布其他chm文件下载用户的反映看,有不少朋友反映下载后打开无法显示,这一般不是...
当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...
EhCache是一个纯Java的进程内缓存框架,具有快速、上手简单等特点,是Hibernate中默认的缓存提供方。 2、Hibernate缓存 Hibernate三级缓存机制简介: 一级缓存:基于Session级别分配一块缓存空间,缓存访问的对象...
一个很好用的Java缓存框架 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
为您提供EhcacheJava缓存框架下载,EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。主要的特性有:1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:内存和...
为您提供Ehcache Java缓存框架下载,EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。主要的特性有:1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:内存和...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,...
在集群化部署的业务场景中,各个进程独自维护自己内存中的数据,而经由负载均衡器分发到各个节点进行处理的请求各不相同,这就导致了进程内缓存数据不一致,进而出现各种问题 —— 比较典型的就是缓存漂移问题。...
Ehcache是一个高效的纯Java进程内缓存框架,以其快速且轻便的特点而被广泛应用于各种应用场景中,尤其在Java EE和轻量级容器环境中更是受到青睐。Ehcache支持多种缓存策略,包括内存和磁盘存储,提供了缓存加载器、...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,...
Ehcache是一种在Java环境中使用的进程内缓存框架,其主要特点包括效率高、易于使用、支持多种缓存策略、具备内存和磁盘的数据两段存储方式、数据持久化以及支持分布式缓存。此外,Ehcache还默认提供了与MyBatis和...
EhCache纯Java的进程内缓存框架,快速、精干。最新版本请访问官网。
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
为了提高性能和减少对数据库的直接访问,MyBatis 提供了缓存功能,而Ehcache 是一个广泛使用的开源Java缓存库,可以集成到MyBatis 中以实现高效的缓存管理。 在MyBatis 中添加Ehcache 缓存支持,首先需要确保项目...