Skip to content

Commit e7f12e4

Browse files
author
akuksin
committed
Add eviction configuration for the Map.
1 parent de375d2 commit e7f12e4

File tree

1 file changed

+16
-5
lines changed
  • spring-boot/hazelcast/hazelcast-embeded-cache/src/main/java/io/refectoring/cache/embedded

1 file changed

+16
-5
lines changed

spring-boot/hazelcast/hazelcast-embeded-cache/src/main/java/io/refectoring/cache/embedded/HazelcastNode.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.refectoring.cache.embedded;
22

3-
import com.hazelcast.config.Config;
4-
import com.hazelcast.config.MapConfig;
3+
import com.hazelcast.config.*;
54
import com.hazelcast.core.Hazelcast;
65
import com.hazelcast.core.HazelcastInstance;
76
import com.hazelcast.map.IMap;
@@ -16,7 +15,7 @@ public class HazelcastNode {
1615

1716
public String put(String number, Car car){
1817
IMap<Object, Object> map = hzInstance.getMap(CARS);
19-
return (String) map.put(number, car);
18+
return (String) map.putIfAbsent(number, car);
2019
}
2120

2221
public Car get(String key){
@@ -26,10 +25,22 @@ public Car get(String key){
2625

2726
public Config createConfig() {
2827
Config config = new Config();
28+
config.addMapConfig(mapConfig());
29+
return config;
30+
}
31+
32+
private MapConfig mapConfig() {
2933
MapConfig mapConfig = new MapConfig(CARS);
34+
mapConfig.setEvictionConfig(evictionConfig());
3035
mapConfig.setTimeToLiveSeconds(20);
3136
mapConfig.setMaxIdleSeconds(360);
32-
config.addMapConfig(mapConfig);
33-
return config;
37+
return mapConfig;
38+
}
39+
40+
private EvictionConfig evictionConfig() {
41+
EvictionConfig evictionConfig = new EvictionConfig();
42+
evictionConfig.setEvictionPolicy(EvictionPolicy.LFU);
43+
evictionConfig.setSize(2000);
44+
return evictionConfig;
3445
}
3546
}

0 commit comments

Comments
 (0)