ExpiringMap工具类设置失效时间
地址
github地址:https://github.com/jhalterman/expiringmap/
1.可以设置过期时间,根据设置的是使用或者创建时间过期,可以很方便。对于在内存中使用很方便。
用法
https://blog.csdn.net/hety119/article/details/89186718
public class CacheUtil {
/**
*expiration(5000,TimeUnit.MILLISECONDS)
*设置过期时间为5秒
*ExpirationPolicy.CREATED)
*设置过期策略为创建或更新值后
*/
private static ExpiringMap<String,String> map =ExpiringMap.builder()
.maxSize(5000)
.expiration(1, TimeUnit.SECONDS)
.expirationPolicy(ExpirationPolicy.ACCESSED)
.variableExpiration()
.build();
public static Map<String,String> getMap(){
return map ;
}
public static void setMap(ExpiringMap<String,String> map ){
CacheUtil.map =map;
}
/**
* ExpirationPolicy.CREATED:在每次更新元素时,过期时间同时清零。
* ExpirationPolicy.ACCESSED:在每次访问元素时,过期时间同时清零。
*/
public static void main(String[] args) throws InterruptedException {
ExpiringMap<String,String> map = ExpiringMap.builder()
.maxSize(5000)
.expiration(1, TimeUnit.SECONDS)
.expirationPolicy(ExpirationPolicy.ACCESSED)
.variableExpiration()
.build();
map.put("sun","xiaofei");
Thread.sleep(500);
//String sun1 = map.get("sun");
Thread.sleep(500);
String sun = map.get("sun");
System.err.println(sun);
}
}
俩个以上的人登入同一账号提示
逻辑
1:工具类ExpiringMap存登入人信息;设置失效时间
2:第一次登入:map存key为用户,value为session。并且记录登入状态已登入,
3:第二次登入,先判断map中是否已登入,如果是就登入状态为重复登入,且清除第一次存的用户信息,重新存入,否侧为第一次登入
4:页面根据登入状态弹出提示框
设置map失效时间,监听以及更新时间
expiringmap.jar中有集成的方法调用即可