Springboot+EhCache缓存管理

转https://blog.csdn.net/u012255097/article/details/54576720

java缓存有很多,ehcache是比较流行的java缓存框架,它以简单,快速等特点受到广大开发人员的喜爱,下面是我参考了一些资料后整理的关于ehcache的简单实例,包括通过配置文件和java动态添加缓存,以下是详细代码:

一、通过使用API来动态的添加缓存(将缓存的配置信息通过java代码来实现而非写在配置文件)

[java]  view plain  copy
  1. package ehcache;  
  2.   
  3. import net.sf.ehcache.Cache;  
  4. import net.sf.ehcache.CacheManager;  
  5. import net.sf.ehcache.Element;  
  6. /** 
  7.  * 使用API来动态的添加缓存(将缓存的配置信息通过java代码来实现而非写在配置文件) 
  8.  * @author Administrator 
  9.  * 
  10.  */  
  11. public class EhCache1 {  
  12.       
  13.     public static void main(String[] args) {  
  14.         //创建一个缓存管理器  
  15.         CacheManager singletonManager = CacheManager.create();  
  16.         //建立一个缓存实例  
  17.         Cache memoryOnlyCache = new Cache("testCache"5000falsefalse52);  
  18.         //在内存管理器中添加缓存实例  
  19.         singletonManager.addCache(memoryOnlyCache);  
  20.         //在缓存管理器中获取一个缓存实例  
  21.         Cache cache = singletonManager.getCache("testCache");  
  22.         //使用获取到的缓存实例  
  23.         Element element = new Element("key1""value1");  
  24.         cache.put(element);//添加缓存值  
  25.         cache.put(new Element("key2""value2"));//添加缓存值  
  26.   
  27.         int elementsInMemory = cache.getSize();//获取缓存个数  
  28.         System.out.println("缓存个数======="+elementsInMemory);  
  29.   
  30. //        Object obj = element.getObjectValue();//获取对象值  
  31. //        cache.remove("key1");//删除缓存  
  32.           
  33.         Cache cache2 = singletonManager.getCache("testCache");//获取缓存实例  
  34.         Element element2 = cache2.get("key1");  
  35.         System.out.println("value====="+element2.getValue());//获取缓存值  
  36. //        singletonManager.shutdown();  
  37.     }  
  38.   
  39. }  

二、通过配置文件ehcache.xml创建缓存实例


1.ehcache.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.          xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">  
  4.   
  5.   <!-- 磁盘缓存位置 -->  
  6.   <diskStore path="java.io.tmpdir/ehcache"/>  
  7.   
  8.   <!-- 默认缓存 -->  
  9.   <defaultCache  
  10.           maxEntriesLocalHeap="10000"  
  11.           eternal="false"  
  12.           timeToIdleSeconds="120"  
  13.           timeToLiveSeconds="120"  
  14.           maxEntriesLocalDisk="10000000"  
  15.           diskExpiryThreadIntervalSeconds="120"  
  16.           memoryStoreEvictionPolicy="LRU"/>  
  17.   
  18.   <!-- helloworld1缓存 -->  
  19.   <cache name="helloworld1"  
  20.          maxElementsInMemory="1000"  
  21.          eternal="false"  
  22.          timeToIdleSeconds="5"  
  23.          timeToLiveSeconds="5"  
  24.          overflowToDisk="false"  
  25.          memoryStoreEvictionPolicy="LRU"/>  
  26.            
  27.          <!-- helloworld2缓存 -->  
  28.   <cache name="helloworld2"  
  29.          maxElementsInMemory="1000"  
  30.          eternal="false"  
  31.          timeToIdleSeconds="5"  
  32.          timeToLiveSeconds="5"  
  33.          overflowToDisk="false"  
  34.          memoryStoreEvictionPolicy="LRU"/>  
  35.            
  36. </ehcache>  
2.java代码

[java]  view plain  copy
  1. package ehcache;  
  2.   
  3. import net.sf.ehcache.Cache;  
  4. import net.sf.ehcache.CacheManager;  
  5. import net.sf.ehcache.Element;  
  6. /** 
  7.  * 通过配置文件(ehcache.xml)来使用缓存 
  8.  * @author Administrator 
  9.  */  
  10. public class EhCache2 {  
  11.       
  12.     public static void main(String[] args) {  
  13.          //创建缓存管理器  
  14.         final CacheManager cacheManager = new CacheManager();  
  15.   
  16.         // 创建一个缓存实例(在配置文件中获取一个缓存实例)  
  17.         final Cache cache = cacheManager.getCache("helloworld1");  
  18.   
  19.         final String key = "greeting";  
  20.   
  21.         //他建一个数据容器  
  22.         final Element putGreeting = new Element(key, "Hello, World!");  
  23.   
  24.         //将数据放入到缓存实例中  
  25.         cache.put(putGreeting);  
  26.   
  27.         //取值  
  28.         final Cache cache2 = cacheManager.getCache("helloworld1");  
  29.         final Element getGreeting = cache2.get(key);  
  30.   
  31.         // Print the value  
  32.         System.out.println("value======//========"+getGreeting.getObjectValue());  
  33.     }  
  34.   
  35. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值