zoukankan      html  css  js  c++  java
  • Ehcache配置详解及CacheManager使用

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

    <ehcache> 
    <!--timeToIdleSeconds 当缓存闲置n秒后销毁 --> 
    <!--timeToLiveSeconds 当缓存存活n秒后销毁 --> 
    <!-- 
    缓存配置 
           name:缓存名称。 
           maxElementsInMemory:缓存最大个数。 
           eternal:对象是否永久有效,一但设置了,timeout将不起作用。 
           timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。 
           timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.,也就是对象存活时间无穷大。 
           overflowToDisk:当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。 
           diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。 
           maxElementsOnDisk:硬盘最大缓存个数。 
           diskPersistent:是否缓存虚拟机重启期数据 Whether the disk store persists between restarts of the Virtual Machine. The default value is false. 
           diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。 
           memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。 
    clearOnFlush:内存数量最大时是否清除。 

    <diskStore path="java.io.tmpdir" />   
    <defaultCache   
      maxElementsInMemory="500"   
      eternal="false"   
      timeToIdleSeconds="300"   
      timeToLiveSeconds="1200"   
      overflowToDisk="true" />   
        <cache name="com.Menu" maxElementsInMemory="150" eternal="false" timeToLiveSeconds="36000" timeToIdleSeconds="3600" overflowToDisk="true"/>   
    </ehcache> 

    EhcacheUtil工具类使用:

      

     1 public class EhcacheUtil {  
     2   
     3     private static final String path = "/ehcache.xml";  
     4   
     5     private URL url;  
     6   
     7     private CacheManager manager;  
     8   
     9     private static EhcacheUtil ehCache;  
    10   
    11     private EhcacheUtil(String path) {  
    12         url = getClass().getResource(path);  
    13         manager = CacheManager.create(url);  
    14     }  
    15   
    16     public static EhcacheUtil getInstance() {  
    17         if (ehCache== null) {  
    18             ehCache= new EhcacheUtil(path);  
    19         }  
    20         return ehCache;  
    21     }  
    22   
    23     public void put(String cacheName, String key, Object value) {  
    24         Cache cache = manager.getCache(cacheName);  
    25         Element element = new Element(key, value);  
    26         cache.put(element);  
    27     }  
    28   
    29     public Object get(String cacheName, String key) {  
    30         Cache cache = manager.getCache(cacheName);  
    31         Element element = cache.get(key);  
    32         return element == null ? null : element.getObjectValue();  
    33     }  
    34   
    35     public Cache get(String cacheName) {  
    36         return manager.getCache(cacheName);  
    37     }  
    38   
    39     public void remove(String cacheName, String key) {  
    40         Cache cache = manager.getCache(cacheName);  
    41         cache.remove(key);  
    42     }  
    43   
    44 }  
  • 相关阅读:
    jQuery 基本选择器
    JavaScriptif while for switch流程控制 JS函数 内置对象
    JavaScrip基本语法
    数据库 存储引擎 表的操作 数值类型 时间类型 字符串类型 枚举集合 约束
    数据库基础知识 管理员 用户登录授权的操作
    粘包的产生原理 以及如何解决粘包问题
    socket TCP DPT 网络编程
    2018年年终总结
    Android技术分享
    No accelerator found
  • 原文地址:https://www.cnblogs.com/mymelody/p/5618198.html
Copyright © 2011-2022 走看看