缓存数据 ehcache

本文详细介绍了Ehcache缓存的基本概念、核心组件、配置方式及使用示例,包括如何创建CacheManager、Cache,如何读取配置文件、放入元素以及关闭资源。同时提供了XML配置文件示例,并解释了各参数的作用。此外,通过Spring配置展示了如何整合Ehcache到Spring应用中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ehcache-core-2.6.5.jar

1.创建CacheManager

CacheManager manager = CacheManager.create();
        CacheManager manager = CacheManager.create("xx/xx/xx/ehcache.xml");
        InputStream fis = new FileInputStream(new File("xx/xx/ehcache.xml").getAbsolutePath());  
        try {  
        manager = CacheManager.create(fis);  
        } finally {  
        fis.close();  
        } 
  1. 读取配置文件中的 Cache
Cache ca = manager.getCache("accesstokenCache"); 
        Element  element = ca.get(weixintokenkey);
        if(element == null){

        }else{  
            String token  = element.getValue().toString();

        }

2.1 创建1个Cache

CacheManager manager = CacheManager.create();  
        Cache cache = new Cache("test", 1, true, false, 5, 2);  
        manager.addCache(cache); 

        //这里在CacheManager中直接加入了一个的cache。如果不设置其他参数,
        //只给了一个名字,所以系统会把defaultCache的设置给它clone一份。 
        //使用方法,像字典一样使用就行: 


  String names[] = manager.getCacheNames();  
        for(int i=0;i<names.length;i++){  
            System.out.println(names[i]);  
        }  

3.放入元素

Element  element = new Element(key,value);
        demo.put(element);

4.关闭

manager.shutdown();

xml文件的样子。

<ehcache>  
    <diskStore path="java.io.tempdir" />  
    <defaultCache maxElementsInMemory="1000" eternal="false"  
        timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />  
    <cache name="ehcacheName" maxElementsInMemory="10000"  
        eternal="false" timeToIdleSeconds="300000" timeToLiveSeconds="600000"  
        overflowToDisk="true" />  
</ehcache> 

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="ehcache.xsd"
         updateCheck="false" monitoring="autodetect"
         dynamicConfig="true">

    <diskStore path="java.io.tmpdir"/>

    <defaultCache
           maxEntriesLocalHeap="10000"
           eternal="false"
           overflowToDisk="false"
           timeToIdleSeconds="1800"
           timeToLiveSeconds="3600">
    </defaultCache>

    <!--system cache name sysCache-->
    <cache name="sysCache"
           maxEntriesLocalHeap="10000"
           maxEntriesLocalDisk="20000"
           eternal="false"
           overflowToDisk="false"
           diskSpoolBufferSizeMB="50"
           timeToIdleSeconds="1800"
           timeToLiveSeconds="3600"
           memoryStoreEvictionPolicy="LFU"
           transactionalMode="off"
            />



    <cache name="accesstokenCache"
           maxEntriesLocalHeap="10000"
           maxEntriesLocalDisk="20000"
           eternal="false"
           overflowToDisk="false"
           diskSpoolBufferSizeMB="50"
           timeToIdleSeconds="7000"
           timeToLiveSeconds="7000"
           memoryStoreEvictionPolicy="LFU"
           transactionalMode="off"
            />

</ehcache>
<!-- maxEntriesLocalHeap="10000" 内存最多1W条-->
<!-- maxEntriesLocalDisk="20000" 磁盘最多2W条-->
<!-- eternal="false" 是否自动过期-->
<!-- overflowToDisk="true" 是否自动存磁盘-->
<!-- diskSpoolBufferSizeMB="50" DiskStore使用的磁盘大小,默认值30MB。每个cache使用各自的DiskStore-->
<!-- timeToIdleSeconds="1800" 空闲过期时间-->
<!-- timeToLiveSeconds="3600" 最长使用时间-->
<!-- memoryStoreEvictionPolicy="LFU" 缓存策略-->
<!-- transactionalMode="off" 使ehcache作为JTA事务的参与者-->
<!-- FIFO  (先进先出). -->
<!-- LFU 最少使用) -->
<!-- LRU 最近最少使用(ehcache 默认值) -->

spring文件中的配置
如果配置文件配置了的话
直接用
CacheManager manager = CacheManager.create(); 就好了

 声明cacheManager 
    <bean id="cacheManagerFactory"  
    class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"  
    p:configLocation="classpath:ehcache.xml"></bean>  

    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"   
    p:cacheManager-ref="cacheManagerFactory" ></bean>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李磊LL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值