Java如何设置过期时间的map
1.可设置Map中的Entry在一段时间后自动过期。
2.可设置Map最大容纳值,当到达Maximum size后,再次插入值会导致Map中的第一个值过期。
3.可添加监听事件,在监听到Entry过期时调度监听函数。
4.可以设置懒加载,在调用get()方法时创建对象。
<dependency> <groupId>net.jodah</groupId> <artifactId>expiringmap</artifactId> <version>0.5.8</version> </dependency>
public static void testExpiringMap() throws InterruptedException { ExpiringMap<String,String> map = ExpiringMap.builder() .maxSize(100) .expiration(1, TimeUnit.SECONDS) .expirationPolicy(ExpirationPolicy.ACCESSED) .variableExpiration() .build(); ExpiringMap<String,String> map1 =ExpiringMap.builder().maxSize(1000).build(); map.put("test","test123"); Thread.sleep(500); String test= map.get("test"); Thread.sleep(200); Long expiration = map.getExpiration("test"); Long expectedExpiration = map.getExpectedExpiration("test"); System.out.println(test); System.out.println(expiration); System.out.println(expectedExpiration); }
这种方案只能适用于单一的服务部署,不适合集群项目,有需要可以引入redis,使用key的时间过期功能
本文来自博客园,作者:黄橙,转载请注明原文链接:https://www.cnblogs.com/RedOrange/p/17117142.html

浙公网安备 33010602011771号