使用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<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;
	}
}




  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值