缓存工具类

直接上代码

package com.gcb.XX.util;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public final class ConcurrentHashUtil {
	//预缓存信息
	private static final Map<String,Object> CACHE_MAP = New ConcurrentHashMap<String,Object>();
	//每个缓存生效十分钟
	private static final Long CACHE_HOLD_TIME = 10 * 60 * 1000L;
	//将key-value存入缓存
	public static void put(String cachName,Object str) {
		put(cachName,str,CACHE_HOLD_TIME);
	}

	private static void put(String cachName,Object str,Long cachHoldTime) {
		CACHE_MAP.put(cachName,str);
		CACHE_MAP.put(cachName + "_HOLDTime",system.currentTimeMillis());
	}
	
	//根据对应的key获取value
	public static Object get(String cachName) {
		//先检查是否存在该字段
		if(checkcheName(cachName)) {
			return CACHE_MAP(cachName);
		}

		return null;
	}

	//检查缓存对象是否存在,如果不存在,返回false,如果存在,判断是否在有效期内,
	//如果过了期限则返回false,并删除该缓存
	private static boolean checkcheName(String cacheName) {
		// TODO Auto-generated method stub
		//获取缓存对象有效期
		Long cacheHoldTime = (Long) CACHE_MAP.get(cacheName + "_HoldTime");
		
		//判断是否存在有效期
		if(cacheHoldTime == null || cacheHoldTime == 0L) {
			return false;
		}
		
		//判断是否在有效期内
		if(cacheHoldTime < System.currentTimeMillis()) {
			remove(cacheName);
			return false;
		}
		
		return true;
	}

	//删除指定缓存对象
	private static void remove(String cacheName) {
		CACHE_MAP.remove(cacheName);
		CACHE_MAP.remove(cacheName + "_HoldTime");
		
		// TODO Auto-generated method stub
		
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值