1.web页面显示:ehcache缓存信息
index.jsp
监控列表:
2. main函数测试代码(来源网络,并加以修改):
package test;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import net.sf.ehcache.Statistics;
/**
#############################################################################
# DESCRIBE ehcache 缓存操作DEMO
# AUTHOR 悠~游 (原创地址:http://www.uusam.com/uu/blog/?p=60)
# DATE 2006-7-10
# COMPANY FLX
# PORJECT ehcache-demo
#
# 这篇文章写得比较早,ehcache变化很大,代码方法都变了,我使用ehcache2.x,并对代码进行了相应修改 add by nassir wen 2012-07-23
#############################################################################
*/
public class Demo {
static CacheManager manager = new CacheManager();
public static void main(String[] args) throws InterruptedException {
DateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String[] cacheNames = manager.getCacheNames();
System.out.println("读取的缓存列表为:");
for (int i = 0; i < cacheNames.length; i++) {
System.out.println("--" + (i + 1) + " " + cacheNames[i]);
}
Cache cache = manager.getCache("mycache");
Element element = new Element("key1", "value1");
cache.put(element);
element = cache.get("key1");
Serializable value = element.getValue();
System.out.println("序列化后的值为:" + value.toString());
element = cache.get("key1");
Object value1 = element.getObjectValue();
System.out.println("未序列化的值为:" + value1.toString());
int elementSize = cache.getSize();
System.out.println("得到缓存的对象数量:" + elementSize);
//缓存元素集合
System.out.println("-----------------------缓存元素统计数据---------------------------------");
List keys = cache.getKeys();
for (Object key : keys) {
Element ele = cache.get(key);
System.out.println("内容: " + ele.getValue());
System.out.println("创建时间: " + sf.format(ele.getCreationTime()));
System.out.println("最后访问时间: " + sf.format(ele.getLastAccessTime()));
System.out.println("过期时间: " + sf.format(ele.getExpirationTime()));
System.out.println("最后更新时间: " + sf.format(ele.getLastUpdateTime()));
System.out.println("命中次数: " + ele.getHitCount());
System.out.println("存活时间: " + ele.getTimeToLive() + "ms");
System.out.println("空闲时间: " + ele.getTimeToIdle() + "ms");
}
System.out.println("--------------------------------------------------------");
System.out.println("-----------------------缓存总统计数据---------------------------------");
long elementsInMemory1 = cache.getMemoryStoreSize();
System.out.println("得到缓存对象占用内存的数量:" + elementsInMemory1);
long elementsInMemory2 = cache.getDiskStoreSize();
System.out.println("得到缓存对对象占用磁盘的数量:" + elementsInMemory2);
//获取缓存统计对象
Statistics stat = cache.getStatistics();
long hits = stat.getCacheHits();
System.out.println("得到缓存读取的命中次数:" + hits);
long memoryHits = stat.getInMemoryHits();
System.out.println("得到内存中缓存读取的命中次数:" + memoryHits);
long diskHits = stat.getOnDiskHits();
System.out.println("得到磁盘中缓存读取的命中次数:" + diskHits);
long cacheMisses = stat.getCacheMisses();
System.out.println("得到缓存读取的丢失次数:" + cacheMisses);
long evictionCount = stat.getEvictionCount();
System.out.println("得到缓存读取的已经被销毁的对象丢失次数:" + evictionCount);
System.out.println("--------------------------------------------------------");
}
}
代码见附件:EhCache-Cluster-Tester.zip
- 大小: 15.6 KB
- 大小: 35.6 KB
分享到:
相关推荐
在本篇【Spring AOP+ehCache简单缓存系统解决方案】中,我们将探讨如何利用Spring AOP(面向切面编程)和ehCache框架来构建一个高效、简单的缓存系统,以提升应用程序的性能。ehCache是一款流行的开源Java缓存库,它...
可以使用EhCache提供的管理工具或Spring的`CacheStatistics`接口来监控缓存的使用情况,如命中率、缓存大小、过期数据等。 通过以上步骤,你可以成功地在Spring应用中整合并使用EhCache作为缓存解决方案。这个简单...
Spring 整合 EhCache 是一个常见的缓存...通过以上步骤,你可以在Spring应用中实现EhCache的简单整合,提高应用程序的性能和响应速度。在实际项目中,根据业务场景灵活运用和优化缓存策略,可以进一步提升系统效率。
启动Ehcache Monitor服务器非常简单,只需进入安装目录的`bin`子目录,运行`startup.sh`(对于Linux或Mac)或`startup.bat`(对于Windows)。这将启动服务器监听指定的端口,通常默认为9889。 最后,你可以通过Web...
9. **API友好**:Ehcache提供了简单易用的API,使得开发者能够轻松地进行缓存操作。 **Ehcache的使用步骤:** 1. **添加依赖**:将提供的Ehcache jar包引入到项目类路径中,如果是Maven或Gradle项目,需要在配置...
它提供了一个简单易用的API,可以在Java应用程序中快速集成和使用。Ehcache的主要特点包括: 1. 高性能:Ehcache使用内存作为主要存储,访问速度快。 2. 可配置性:可以设置缓存策略,如大小限制、过期时间等。 3. ...
5. **监控和优化**:Ehcache提供了一些监控工具,帮助开发者分析缓存的使用情况并进行优化。 五、实战案例 在大型电商网站中,用户主页的个性化推荐数据可以利用Ehcache进行缓存。当用户登录后,先从缓存中查找其...
2. **简单**:其简洁的API和丰富的文档使ehcache易于集成和使用,即使是对缓存技术不熟悉的开发者也能快速上手。 3. **多种缓存策略**:ehcache支持LRU(Least Recently Used)、LFU(Least Frequently Used)和FIFO...
9. **缓存的监控与统计**:Ehcache提供了丰富的监控和统计信息,如命中率、缓存大小、操作次数等,这些信息可以帮助优化缓存性能。 10. **异常处理**:在使用Ehcache时,需要注意处理可能的异常,如`CacheException...
6. **API与集成**:EhCache提供了简单易用的API,开发者可以通过Java API进行缓存操作。同时,EhCache与许多流行框架如Spring、Hibernate等有很好的集成,使得在这些框架中使用EhCache变得十分方便。在Hibernate中,...
Ehcache不仅可以作为简单的内存缓存,还可以与其他持久化存储层(如数据库或分布式缓存)配合使用,实现更复杂的缓存策略。 Ehcache的核心概念主要包括以下几个部分: 1. **Cache**:缓存是Ehcache的基本单位,它...
10. **性能监控**:通过Ehcache提供的监控工具,开发者可以实时查看缓存的使用情况,如命中率、内存占用、缓存项数量等,从而更好地优化应用性能。 综上所述,Ehcache 2.10.5是一个功能强大且灵活的缓存解决方案,...
此外,Ehcache还支持事件监听,可以监控缓存的添加、移除和更新操作。 8. **扩展性**:Ehcache允许开发人员自定义缓存的实现,比如提供自定义的缓存策略、过期策略等,具有很高的灵活性。 9. **版本迭代**:虽然...
Ehcache允许注册监听器来监控缓存操作,如`CacheEntryListener`用于监听缓存项的添加、更新和删除事件: ```java CacheConfigurationBuilder, String> configBuilder = ...; configBuilder.withCacheEventListener...
- **添加、获取、删除和替换操作**:Ehcache提供简单易用的API,如`put()`, `get()`, `remove()` 和 `replace()`,便于在代码中进行缓存操作。 9. **异常处理**: - **缓存异常**:Ehcache在遇到问题时会抛出特定...
观察日志或使用监控工具检查Ehcache的性能。根据实际需求,可以调整缓存策略,如增大缓存大小、延长存活时间等。 在实际应用中,Ehcache不仅可以用作Hibernate的二级缓存,还可以独立使用,为其他服务提供缓存支持...
- **TestEhcache.zip**:这个项目可能是一个简单的Ehcache使用示例,演示了如何创建和操作缓存,包括缓存的存取、更新、删除等基本操作。通过阅读源代码和运行程序,可以直观地理解Ehcache的基本功能。 - **...
以下是一个简单的示例,展示了如何在Java代码中使用Ehcache: ```java import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; public class JDBCEhcache { public static void main(String[] ...