依赖
<dependency>
<groupId>net.jodah</groupId>
<artifactId>expiringmap</artifactId>
<version>0.5.10</version>
</dependency>
优点
1.可以设置元素在一段时候后自动过期
2.可设置map最大容纳值,当元素达到最大值后,再次插入值会导致第一个值过期
3.可以添加监听事件,在监听到元素过期时调用监听函数
4.可以设置懒加载,在调用get方法时创建对象
测试
public void test() throws InterruptedException {
ExpiringMap<String, String> map = ExpiringMap.builder()
.variableExpiration()
.expirationPolicy(ExpirationPolicy.CREATED)
.build();
//ExpirationPolicy.ACCESSED 设定为调用此key一次 就刷新一次过期时间,如不写就从put 的时候开始计算时间
map.put("key1","value1",ExpirationPolicy.ACCESSED,3000, TimeUnit.MILLISECONDS);
Thread.sleep(2000);
System.out.println("key1:"+map.get("key1"));
Thread.sleep(4000);
System.out.println("key1:"+map.get("key1"));
result