• 【Spring__ehcache 】ehcache简单使用


    1、配置文件

            <ehcache.version>2.6.11</ehcache.version>
            <ehcache-web.version>2.0.4</ehcache-web.version>
    
            <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache-core</artifactId>
                <version>${ehcache.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache-web</artifactId>
                <version>${ehcache-web.version}</version>
            </dependency>
    
        <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
            <property name="configLocation" value="classpath:xml/ehcache-local.xml"/>
        </bean>
    

    ehcache-local.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache updateCheck="false" name="defaultCache">
        <diskStore path="../temp/ehcache"/>
        <!-- 默认缓存配置. 自动失效:最后一次访问时间间隔300秒失效,若没有访问过自创建时间600秒失效。-->
        <defaultCache maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
                      overflowToDisk="true" statistics="true"/>
        <cache name="cache01"
               maxElementsInMemory="1000"
               eternal="false"
               overflowToDisk="false"
               timeToIdleSeconds="60"
               timeToLiveSeconds="60"
               memoryStoreEvictionPolicy="LRU"/>
        <cache name="sysCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
        <!-- 简单页面缓存 -->
        <cache name="pageCachingFilter" maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="120"
               timeToLiveSeconds="120" overflowToDisk="true" memoryStoreEvictionPolicy="LFU" statistics="true"/>
        <!-- 系统活动会话缓存 -->
        <cache name="activeSessionsCache" maxEntriesLocalHeap="10000" eternal="true" overflowToDisk="true"
               diskPersistent="true" diskExpiryThreadIntervalSeconds="600" statistics="true"/>
    </ehcache>
    

    2、CacheUtils

    SpringContextHolder

    package com.kikyo.util;
    
    import com.kikyo.listener.SpringContextHolder;
    import net.sf.ehcache.CacheManager;
    import net.sf.ehcache.Cache;
    import net.sf.ehcache.Element;
    
    public class CacheUtils {
        // private static CacheManager cacheManager = SpringContextHolder.getBean("cacheManager");//都可以
        private static CacheManager cacheManager = SpringContextHolder.getBean(CacheManager.class);
        private static final String SYS_CACHE = "cache01";
    
        public static Object get(String key) {
            return get(SYS_CACHE, key);
        }
    
        public static void put(String key, Object value) {
            put(SYS_CACHE, key, value);
        }
    
        public static Object get(String cacheName, String key) {
            Cache cache = getCache(cacheName);
            Element element = cache.get(key);
            return element == null ? null : element.getObjectValue();
        }
    
        public static void put(String cacheName, String key, Object value) {
            Element element = new Element(key, value);
            Cache cache = getCache(cacheName);
            cache.put(element);
        }
    
        public static void remove(String key) {
            remove(SYS_CACHE, key);
        }
    
        public static void remove(String cacheName, String key) {
            getCache(cacheName).remove(key);
        }
    
        private static Cache getCache(String cacheName) {
            Cache cache = cacheManager.getCache(cacheName);
            if (cache == null) {
                throw new RuntimeException("当前系统中没有定义“" + cacheName + "”这个缓存。");
            }
            return cache;
        }
    }
    
    
  • 相关阅读:
    cinder-volume报错vmdk2 is reporting problems, not sending heartbeat. Service will appear "down".
    Linux下截取指定时间段日志并输出到指定文件
    使用diff或者vimdiff比较远程文件(夹)与本地文件夹
    OpenStack视图
    awk 计算某一列的和
    opencontrail—VXLAN模式下数据包的传输过程
    shell-计算虚拟机创建时间
    gnocchi resource批量删除
    openflow控制器和交换机之间的消息
    openflow packet_out和packet_in分析
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/13186144.html
Copyright © 2020-2023  润新知