现在我在项目中的职责是访问计数模块。如果用户在两个小时内重复登录,则应视为一次。
我使用 concurrentHashMap 来放置用户 ID 和访问时间。
private static Map<String,Date> loginTimeMap = new ConcurrentHashMap<String, Date>();
每次用户访问索引页面,程序都会比较时间。
Date date = loginTimeMap.get(user.getSuUserId());
if(date==null||DateUtil.getHourInterval(new Date(),date)>=DefinedValue.LIMIT_TIME){
accessCount=accessCount+1;
loginTimeMap.put(user.getSuUserId(), new Date());
}
在代码中 LIMIT_TIME 是一个常量,表示两个小时。
如果地图大小超过 10000,loginTimeMap 会减慢服务器速度吗?
真的很抱歉我的英语不好!