1.功能介紹
2.使用說明
詳細介紹
3.1設置過期時間和過期協議3.2設置地圖中單個元素的過期時間3.3設置地圖的最大大小3.4過期監控事件3.5延遲加載1。功能介紹1。您可以將地圖中的條目設置為壹段時間後自動過期。2.您可以設置地圖的最大容量。當達到最大值時,再次插入值將導致映射中的第壹個值過期。3.您可以添加壹個監聽事件,並在聽到條目過期時調度監聽功能。4.您可以設置延遲加載並在調用get()方法時創建對象。2.Github地址mavennet的使用說明。Jodahexpiringmap 0.5.83。詳細介紹3.1設置到期時間和到期協議/* * *到期(5000,時間單位。毫秒)*將過期時間設置為5秒*過期策略。CREATED)*設置過期策略以創建或更新值*/ExpiringMapMap = ExpiringMap。生成器()。到期時間(5000,時間單位。毫秒)。expirationPolicy(過期政策。已創建)。build();map . put(“key“,“value“);system . out . println(“key:“+map . get(“key“));//等待5秒thread . sleep(5001);system . out . println(map . get(“key“);執行結果:關鍵字:值null過期協議:Expiration policy . created ./* * * Expiration policy。已創建:更新元素的同時清除到期時間。*過期政策。已訪問:每次訪問元素時,過期時間也會被清除。*/expiring map map = expiring map . builder()。到期時間(5000,時間單位。毫秒)。expirationPolicy(過期政策。已創建)。build();map . put(“key“,“value“);system . out . println(map . get(“key“);thread . sleep(4000);system . out . println(“access map:“+map . get(“key“));three . sleep(1001);system . out . println(map . get(“key“);執行結果:value訪問map:valuenull在過期時間內調用map.put(),並且在map.replace()的更新操作之後:expiringmapmap = expiringmap . builder()。到期時間(5000,時間單位。毫秒)。expirationPolicy(過期政策。已創建)。build();map . put(“key“,“value“);system . out . println(map . get(“key“);thread . sleep(4000);map . put(“key“,“value 2“);system . out . println(“update map:“+map . get(“key“));three . sleep(1001);system . out . println(map . get(“key“);執行結果:值更新映射:value2value2到期協議:Expiration policy . accessed . expiring map = expiring map . builder()。到期時間(5000,時間單位。毫秒)。expirationPolicy(過期政策。已訪問)。build();map . put(“key“,“value“);system . out . println(map . get(“key“);thread . sleep(4000);system . out . println(“access map:“+map . get(“key“));three . sleep(1001);system . out . println(map . get(“key“);執行結果:值訪問映射:值3.2設置映射中單個元素的過期時間:expiringMapMap = expiringmap . builder()。變量到期()。ExpirationPolicy(過期政策。已創建)。build();map . put(“key 1“,“value1“,ExpirationPolicy。已訪問,5000,時間單位。毫秒);map . put(“key 2“,“value2“,10000,時間單位。毫秒);thread . sleep(5001);system . out . println(“key 1:“+map . get(“key 1“));system . out . println(“key 2:“+map . get(“key 2“));thread . sleep(5000);system . out . println(“key 2:“+map . get(“key 2“));執行結果key 1:null key 2:value 2 key 2:null 3.3將地圖的最大大小//最大大小設置為10 Map maps = expiring Map . builder()。maxsize(10)。build();//Insert 10 number for(int I = 0;我& lt10;i++){ map . put(“a:“+I,“v:“+I);} system . out . println(“a:0未過期:“+map . get(“a:0“));System.out.println(“插入a:10後“);map . put(“a:10“,“v:10“);system . out . println(“a:0過期:“+map . get(“a:0“));system . out . println(“a:1未過期:“+“a:1“);執行結果a:0尚未過期:v:0已在插入後過期a:10: nulla:1尚未過期:a:13.4已過期監聽事件ExpiringMapMap = ExpiringMap。生成器()。變量到期()。ExpirationListener((密鑰{ system . out . println(“key:“+the key+“expired“);}).build();map . put(“key“,“value“,5000,時間單位。毫秒);thread . sleep(5001);system . out . println(“key:“+map . get(“key“));運行結果密鑰:密鑰過期密鑰:null也可用於添加/刪除監視器expiringmapmap = expiringmap . builder()。變量到期()。運行時生成();expiration listenerexpiration listener =((the key,the value)-& gt;{System.out.println(“過期監聽事件“+“key:“+the key+“value:“+the value);});map . put(“key“,“value“,ExpirationPolicy。創建時間單位為5000。毫秒);//添加監控地圖。addexpiration listener(expiration listener);thread . sleep(5001);//清除監視器映射。removeexpirationlistener(過期偵聽器);運行結果過期監控事件key:key值:value3.5使用延遲加載模式時,可以在調用get方法時自動創建壹個對象,而無需轉到map中的put對象。類連接{ String ipAddress公共連接(字符串IP address){ this . IP address = IP address;} } Mapmap = ExpiringMap.builder()
。到期時間(5000,時間單位。毫秒)
。expiration listener((the key,the value)-& gt;{
System.out.println(“過期密鑰:“+theKey“);
})
。entryLoader(地址-& gt;新連接((字符串)地址)
。build();
system . out . println(map . get(“127 . 0 . 0 . 1“);
thread . sleep(5001);
實施結果:
com . zhizhou . netty . socket channel maptest $ 1 connection @ b 1e9b 8
過期密鑰:127.0.0.1