使用哈希表作为缓存工具,可以有时候有效避免对数据库的频繁访问,有助于效率和性能的提高
package com.test.lz;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 数据缓存类
*
* @author zhe.liu
*
*/
public class CacheMap {
public static int DEFAULT_CACHE_MINUTE = 5;
/**
* 数据缓存map
*/
private static Map<String, Object> dataMap = new ConcurrentHashMap<String, Object>();
/**
* 数据缓存过期map
*/
private static Map<String, Date> dataExpireMap = new ConcurrentHashMap<String, Date>();
/**
* 将一个key、value值放入内存缓存,并设置过期分钟数
*
* @param key
* @param val
* @param expireMiute
*/
public static void put(String key, Object val, int expireMiute) {
dataMap.put(key, val);
dataExpireMap.put(key, DateUtil.addMinutes(new Date(), expireMiute));
}
/**
* 从缓存中获取一个key的数据(若过期返回null)
*
* @param key
* @return
*/
public static Object get(String cacheKey) {
Object obj = null;
Date expireDate = CacheMap.dataExpireMap.get(cacheKey);
if (expireDate != null && expireDate.compareTo(new Date()) > 0) {
obj = CacheMap.dataMap.get(cacheKey);
}
return obj;
}
}