使用ConcurrentHashMap作为缓存工具类的总结

使用哈希表作为缓存工具,可以有时候有效避免对数据库的频繁访问,有助于效率和性能的提高

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 dataMap = new ConcurrentHashMap();
	/**
	 * 数据缓存过期map
	 */
	private static Map dataExpireMap = new ConcurrentHashMap();

	/**
	 * 将一个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;
	}
}




你可能感兴趣的:(使用ConcurrentHashMap作为缓存工具类的总结)