ehcache缓存的简单使用

1、将ehcache.xml文件放到src目录下

<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
    <!-- 指定一个文件目录,当EhCache把数据写到硬盘上时,将把数据写到这个文件目录下 -->
    <diskStore path="java.io.tmpdir"/>

    <!-- 默认缓存 -->
    <defaultCache
        maxElementsInMemory="10000" 
        eternal="false" 
        overflowToDisk="true"
        timeToIdleSeconds="10"
        timeToLiveSeconds="20"
        diskPersistent="false"
        diskExpiryThreadIntervalSeconds="120"/>
    <!-- 自定义缓存 -->
    <cache name="cacheTest"
        maxElementsInMemory="1000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="10"
        timeToLiveSeconds="10"/>
</ehcache>

2、写个工具类

package com.common.utils;

import java.net.URL;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

public class EhcacheUtil {

    private static String path = "/ehcache.xml";
    private URL url;
    private CacheManager manager; 
    
    private static EhcacheUtil cacheUtil;
    
    private  EhcacheUtil(String path){
        url = this.getClass().getResource(path);
        manager = CacheManager.create(url);
    }
    
    public static EhcacheUtil getInstance() { 
        if(cacheUtil == null){
            synchronized (EhcacheUtil.class) {
                if(cacheUtil == null){
                    cacheUtil = new EhcacheUtil(path);
                }
            }
        }
        return cacheUtil;
    }
    
    public void put(String cacheName, String key, Object value) { 
        Cache cache = manager.getCache(cacheName); 
        Element element = new Element(key, value); 
        cache.put(element); 
    } 
    
    public Object get(String cacheName, String key) { 
        Cache cache = manager.getCache(cacheName); 
        Element element = cache.get(key); 
        return element == null ? null : element.getObjectValue(); 
    } 
    
    public Cache get(String cacheName) { 
        return manager.getCache(cacheName); 
    } 
    
    public void remove(String cacheName, String key) { 
        Cache cache = manager.getCache(cacheName); 
        cache.remove(key); 
    } 

}

3、写个测试类

package com.test;

import com.common.utils.EhcacheUtil;

public class TestEhcache {

    public static void main(String[] args) {
        EhcacheUtil.getInstance().put("cacheTest", "test", "so easy!");
        Object object = EhcacheUtil.getInstance().get("cacheTest", "test");
        System.out.println((String)object);
    }
}

4、结束啦

猜你喜欢

转载自www.cnblogs.com/wang-yi-ran/p/9361622.html