`
wenjinglian
  • 浏览: 824967 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

Ehcache 简单的监控

阅读更多

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简单缓存系统解决方案】中,我们将探讨如何利用Spring AOP(面向切面编程)和ehCache框架来构建一个高效、简单的缓存系统,以提升应用程序的性能。ehCache是一款流行的开源Java缓存库,它...

    spring整合EhCache 简单例子

    可以使用EhCache提供的管理工具或Spring的`CacheStatistics`接口来监控缓存的使用情况,如命中率、缓存大小、过期数据等。 通过以上步骤,你可以成功地在Spring应用中整合并使用EhCache作为缓存解决方案。这个简单...

    spring整合EhCache 的简单例子

    Spring 整合 EhCache 是一个常见的缓存...通过以上步骤,你可以在Spring应用中实现EhCache的简单整合,提高应用程序的性能和响应速度。在实际项目中,根据业务场景灵活运用和优化缓存策略,可以进一步提升系统效率。

    Ehcache Monitor 安装配置

    启动Ehcache Monitor服务器非常简单,只需进入安装目录的`bin`子目录,运行`startup.sh`(对于Linux或Mac)或`startup.bat`(对于Windows)。这将启动服务器监听指定的端口,通常默认为9889。 最后,你可以通过Web...

    ehcache资料(包含ehcache jar包)

    9. **API友好**:Ehcache提供了简单易用的API,使得开发者能够轻松地进行缓存操作。 **Ehcache的使用步骤:** 1. **添加依赖**:将提供的Ehcache jar包引入到项目类路径中,如果是Maven或Gradle项目,需要在配置...

    Ehcache整合Spring使用页面、对象缓存

    它提供了一个简单易用的API,可以在Java应用程序中快速集成和使用。Ehcache的主要特点包括: 1. 高性能:Ehcache使用内存作为主要存储,访问速度快。 2. 可配置性:可以设置缓存策略,如大小限制、过期时间等。 3. ...

    ehcache项目缓存技术

    5. **监控和优化**:Ehcache提供了一些监控工具,帮助开发者分析缓存的使用情况并进行优化。 五、实战案例 在大型电商网站中,用户主页的个性化推荐数据可以利用Ehcache进行缓存。当用户登录后,先从缓存中查找其...

    ehcache配置使用详解

    2. **简单**:其简洁的API和丰富的文档使ehcache易于集成和使用,即使是对缓存技术不熟悉的开发者也能快速上手。 3. **多种缓存策略**:ehcache支持LRU(Least Recently Used)、LFU(Least Frequently Used)和FIFO...

    ehcachedemo

    9. **缓存的监控与统计**:Ehcache提供了丰富的监控和统计信息,如命中率、缓存大小、操作次数等,这些信息可以帮助优化缓存性能。 10. **异常处理**:在使用Ehcache时,需要注意处理可能的异常,如`CacheException...

    Java缓存框架 EhCache

    6. **API与集成**:EhCache提供了简单易用的API,开发者可以通过Java API进行缓存操作。同时,EhCache与许多流行框架如Spring、Hibernate等有很好的集成,使得在这些框架中使用EhCache变得十分方便。在Hibernate中,...

    ehcache的jar包

    Ehcache不仅可以作为简单的内存缓存,还可以与其他持久化存储层(如数据库或分布式缓存)配合使用,实现更复杂的缓存策略。 Ehcache的核心概念主要包括以下几个部分: 1. **Cache**:缓存是Ehcache的基本单位,它...

    ehcache-2.10.5.rar

    10. **性能监控**:通过Ehcache提供的监控工具,开发者可以实时查看缓存的使用情况,如命中率、内存占用、缓存项数量等,从而更好地优化应用性能。 综上所述,Ehcache 2.10.5是一个功能强大且灵活的缓存解决方案,...

    ehcache-1.1.jar

    此外,Ehcache还支持事件监听,可以监控缓存的添加、移除和更新操作。 8. **扩展性**:Ehcache允许开发人员自定义缓存的实现,比如提供自定义的缓存策略、过期策略等,具有很高的灵活性。 9. **版本迭代**:虽然...

    ehcache常用API整理

    Ehcache允许注册监听器来监控缓存操作,如`CacheEntryListener`用于监听缓存项的添加、更新和删除事件: ```java CacheConfigurationBuilder, String&gt; configBuilder = ...; configBuilder.withCacheEventListener...

    ehcache1.4.0

    - **添加、获取、删除和替换操作**:Ehcache提供简单易用的API,如`put()`, `get()`, `remove()` 和 `replace()`,便于在代码中进行缓存操作。 9. **异常处理**: - **缓存异常**:Ehcache在遇到问题时会抛出特定...

    Ehcache(2): Ehcache实例在Eclipse中的配置 改进

    观察日志或使用监控工具检查Ehcache的性能。根据实际需求,可以调整缓存策略,如增大缓存大小、延长存活时间等。 在实际应用中,Ehcache不仅可以用作Hibernate的二级缓存,还可以独立使用,为其他服务提供缓存支持...

    ehcache的功能实现

    - **TestEhcache.zip**:这个项目可能是一个简单的Ehcache使用示例,演示了如何创建和操作缓存,包括缓存的存取、更新、删除等基本操作。通过阅读源代码和运行程序,可以直观地理解Ehcache的基本功能。 - **...

    cache/ehcache缓存使用

    以下是一个简单的示例,展示了如何在Java代码中使用Ehcache: ```java import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; public class JDBCEhcache { public static void main(String[] ...

Global site tag (gtag.js) - Google Analytics