`
wusuoya
  • 浏览: 643156 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

缓存之ehcache 之使用

 
阅读更多

1. EHCache 的特点,是一个纯Java ,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中。如项目已安装了Hibernate ,则不需要做什么。。直接可以使用Ehcache 

Maven引入jar包  

    <!-- ehcache begin. -->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.5.1</version>
        </dependency>
        <!-- ehcache end. -->



Cache 存储方式 :内存或磁盘 

2. 单独使用 EHCache 

使用CacheManager 创建并管理Cache 
1.创建CacheManager有4种方式: 


A:使用默认配置文件创建 

 

java代码:
  1. CacheManager manager = CacheManager.create();  

 

B:使用指定配置文件创建 

java代码:
  1. CacheManager manager = CacheManager.create("src/config/ehcache.xml");  


C:从classpath中找寻配置文件并创建 

 

java代码:
  1. URL url = getClass().getResource("/anothername.xml");  
  2. CacheManager manager = CacheManager.create(url);  

 

D:通过输入流创建

 

java代码:
  1. InputStream fis = new FileInputStream(new File("src/config/ehcache.xml").getAbsolutePath());  
  2. try {  
  3. manager = CacheManager.create(fis);  
  4. finally {  
  5. fis.close();  
  6. }  

 

 

卸载CacheManager ,关闭Cache 

 

java代码:
  1. manager.shutdown();  

 

 

使用Caches 

取得配置文件中预先 定义的sampleCache1设置,通过CacheManager生成一个Cache 

 

 

java代码:
  1. Cache cache = manager.getCache("sampleCache1");  

 

设置一个名为test 的新cache,test属性为默认 

java代码:
  1. CacheManager manager = CacheManager.create();  
  2. manager.addCache("test");  

 

设置一个名为test 的新cache,并定义其属性 

 

java代码:
  1. CacheManager manager = CacheManager.create();  
  2. Cache cache = new Cache("test"1truefalse52);  
  3. manager.addCache(cache);  


往cache中加入元素 

java代码:
  1. Element element = new Element("key1""value1");  
  2. cache.put(new Element(element);  

 

从cache中取得元素

 

java代码:
  1. Element element = cache.get("key1");   

 

 

所以大概步骤为: 
第一步:生成CacheManager对象 
第二步:生成Cache对象 
第三步:向Cache对象里添加由key,value组成的键值对的Element元素
 

具体一个Test.java程序: 

java代码:
查看复制到剪贴板打印package com.bcc.ctrl;

import java.util.HashMap;
import java.util.Map;

import net.sf.ehcache.Cache;  
import net.sf.ehcache.CacheManager;  
import net.sf.ehcache.Element;  
/**
 * 第一步:生成CacheManager对象
 * 第二步:生成Cache对象
 * 第三步:向Cache对象里添加由key,value组成的键值对的Element元素
 * @author David
 *
 */  
public class Test {  
      
    public static void main(String[] args) {  
          CacheManager singletonCacheManager = CacheManager.create();

          Cache linkCache = null;
          if (singletonCacheManager.cacheExists("LinkCache")) {
              // 如果存在直接获得.
              linkCache = singletonCacheManager
                      .getCache("LinkCache");
          } else {// 否则创建.
                  // 可以存5000个数据.60 * 1 设置1分钟缓存.
              linkCache = new Cache("LinkCache", 5000,
                      false, false, 60 * 1, 60 * 1);
              // 放入缓存.
              singletonCacheManager.addCache(linkCache);
          }
          
            
          //向linkCache对象里添加Element元素,Element元素有key,value键值对组成 ,都是Object类型
          linkCache.put(new Element("key1","key1:values1"));  
          Element element1 = linkCache.get("key1");         
          System.out.println(element1.getValue());
          
          Map<String,String> emailMap = new HashMap<String,String>();
          emailMap.put("username", "Tom");
          emailMap.put("time", "20130823");
          
          linkCache.put(new Element("key2",emailMap));
          Element element2 = linkCache.get("key2");  
          Map<String,String> map = (Map<String,String>)(element2.getValue()); //getValue得到的是Object类型
          System.out.println("username: " + map.get("username"));
          System.out.println("time: " + map.get("time"));
          
          
          //该例设置缓存为1分钟(60*1),测试1分钟后linkCache是否自动被清空
          try {
              Thread.sleep(70000);//括号里面的1000代表1000毫秒,也就是1秒,此处是70秒
          } catch (InterruptedException e) {
                  e.printStackTrace();
          }
          System.out.println("延迟70秒后,超过缓存设定存在时间,linkCache被清空:" + singletonCacheManager.cacheExists("LinkCache"));
          
          // 如果存在直接删除缓存
          if (singletonCacheManager.cacheExists("LinkCache")) {
              singletonCacheManager.removeCache("LinkCache");
          }
          
          //关闭CacheManager
          singletonCacheManager.shutdown();  
     }  
 
 
}

输出结果:
key1:values1
username: Tom
time: 20130823
延迟70秒后,超过缓存设定存在时间,linkCache被清空: true



3. 在 Hibernate 中运用EHCache ,详见Hibernate 之Hibernate缓存

分享到:
评论

相关推荐

    基于java的开发源码-ehcache(Java缓存框架 EhCache).zip

    基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 ...

    Java缓存框架 EhCache

    EhCache是一个广泛使用的开源Java缓存框架,它以其高效、轻量级和易于集成的特性,在Java开发领域中占据了重要的地位。作为进程内缓存解决方案,EhCache能够在应用程序运行时存储数据,显著提高数据访问速度,减轻...

    cache/ehcache缓存使用

    本文将详细讲解"cache/ehcache缓存使用"的相关知识点,包括缓存的基本概念、Ehcache的介绍、以及如何在Java应用中使用Ehcache进行缓存操作。 首先,我们要理解什么是缓存。缓存是一种存储技术,它临时存储常用或...

    spring + ehcache + redis两级缓存

    **Ehcache** 是一个广泛使用的Java缓存库,适合在内存中存储数据。它提供了一种快速访问最近使用(LRU)的数据的方法,支持缓存的持久化,并且可以在JVM内部或独立于应用进程运行。在Spring中,我们可以配置Ehcache...

    Spring Boot的EhCache缓存使用.docx

    在Spring Boot的主配置类上添加`@EnableCaching`注解,并通过`spring.cache.type=ehcache`属性指定使用EhCache作为缓存提供者。 4. **更新配置**: 如果有自定义的`CacheManager`配置,需要在配置类中添加`@...

    ehcache页面缓存技术

    ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache...

    Ehcache分布式缓存与其在SpringBoot应用

    在分布式环境中,Ehcache通过使用JGROUP来实现分布式缓存。JGROUP是一个用于构建可靠集群通信的库,可以提供组成员资格、故障检测、传输协议等多种功能,使得Ehcache能够在多个节点之间共享和同步缓存数据。Ehcache...

    Spring 与Ehcache实现基于方法的缓存

    Ehcache则是一款广泛使用的开源缓存解决方案,用于提高应用程序性能,减少数据库负载。本篇文章将详细探讨如何在Spring框架中集成并实现基于方法的缓存机制,利用Ehcache来优化数据访问。 首先,我们需要理解Spring...

    ehcache缓存配置详解

    ehcache 缓存配置详解 Ehcache 是一个流行的 Java 缓存框架,提供了强大的缓存机制,帮助开发者提高应用程序的性能和可扩展性。 Ehcache 的配置主要包括 diskstore、defaultCache、cache 三个部分,这三个部分的...

    Java缓存框架 Ehcache.zip

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置: 主要的特性有: 1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:...

    开源缓存包 EHCache 全接触

    EHCache 是一个广泛使用的开源 Java 缓存解决方案,它被设计用于提高应用程序的性能和响应速度,通过存储数据到内存中,避免了频繁的数据库访问。EHCache 适用于多种场景,包括 Web 应用、企业级服务和大数据处理等...

    Ehcache缓存

    Ehcache是一种广泛使用的开源Java分布式缓存系统,它为高性能应用程序提供了内存存储和缓存解决方案。在Java世界中,尤其是在持久化框架如Hibernate的使用中,Ehcache扮演了至关重要的角色。由于数据库查询通常会...

    ehcache(Java缓存框架 EhCache)

    ehcache(Java缓存框架 EhCache)

    缓存框架-Ehcache学习笔记

    Ehcache 提供了本地内存缓存、磁盘存储以及分布式缓存的能力,使得应用程序能够快速访问频繁使用的数据,从而提高整体性能和响应速度。 ### 1. Ehcache 基本概念 - **Cache**: 缓存是存储数据的临时区域,用于快速...

    java 缓存插件ehcache 应用实例

    Ehcache是一款广泛使用的开源Java缓存框架,尤其在处理大量数据时,它可以显著提升应用程序的效率。本文将深入探讨Ehcache在实际应用中的实例。 一、Ehcache简介 Ehcache是由Terracotta公司开发的高性能、易用的...

    java源码:ehcache(Java缓存框架 EhCache).rar

    使用EhCache主要通过`CacheManager`获取`Cache`实例,然后通过`put()`、`get()`、`remove()`等方法操作缓存。 9. **与其他框架集成**: EhCache能很好地与Spring、Hibernate等框架集成,提供便捷的缓存管理。 10...

    hibernate缓存ehcache用法

    这篇博客文章“hibernate缓存ehcache用法”可能详细介绍了如何在Hibernate中配置和使用Ehcache。 首先,我们需要理解什么是缓存。缓存是一种存储技术,用于临时保存经常访问的数据,以减少对主存储器(如数据库)的...

    ehcache项目缓存技术

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

    基于java的ehcache(Java缓存框架 EhCache).zip

    - 配置文件:EhCache使用XML配置文件来定义缓存区域和相关设置,如缓存大小、过期策略等。 3. EhCache的核心组件: - CacheManager:管理所有的缓存区域,负责初始化、加载、关闭缓存。 - Cache:代表一个缓存...

    ehcache(Java缓存框架 EhCache).7z

    1. **内存管理**:EhCache使用内存来存储缓存数据,提供了LRU(Least Recently Used)和LFU(Least Frequently Used)两种淘汰策略,以确保在内存有限的情况下,优先保留最常用或最重要的数据。 2. **磁盘存储**:...

Global site tag (gtag.js) - Google Analytics