diff --git a/redisson/src/main/java/org/redisson/spring/cache/CacheConfig.java b/redisson/src/main/java/org/redisson/spring/cache/CacheConfig.java index 5af54eda3..76a6ba01f 100644 --- a/redisson/src/main/java/org/redisson/spring/cache/CacheConfig.java +++ b/redisson/src/main/java/org/redisson/spring/cache/CacheConfig.java @@ -15,6 +15,7 @@ */ package org.redisson.spring.cache; +import org.redisson.api.EvictionMode; import org.redisson.api.map.event.MapEntryListener; import java.io.File; @@ -39,7 +40,9 @@ public class CacheConfig { private long maxIdleTime; private int maxSize; - + + private EvictionMode evictionMode = EvictionMode.LRU; + private final List listeners = new ArrayList<>(); /** @@ -79,7 +82,6 @@ public class CacheConfig { public void setTTL(long ttl) { this.ttl = ttl; } - public int getMaxSize() { return maxSize; @@ -95,6 +97,21 @@ public class CacheConfig { this.maxSize = maxSize; } + public EvictionMode getEvictionMode() { + return evictionMode; + } + + /** + * Set the eviction mode of the map. Superfluous elements are evicted using LRU or LFU algorithm. + * + * @param evictionMode - eviction mode (LRU, LFU) + * @return + */ + public CacheConfig setEvictionMode(EvictionMode evictionMode) { + this.evictionMode = evictionMode; + return this; + } + public long getMaxIdleTime() { return maxIdleTime; } diff --git a/redisson/src/main/java/org/redisson/spring/cache/RedissonSpringCacheManager.java b/redisson/src/main/java/org/redisson/spring/cache/RedissonSpringCacheManager.java index 9337dc0a2..9cca0757e 100644 --- a/redisson/src/main/java/org/redisson/spring/cache/RedissonSpringCacheManager.java +++ b/redisson/src/main/java/org/redisson/spring/cache/RedissonSpringCacheManager.java @@ -269,7 +269,7 @@ public class RedissonSpringCacheManager implements CacheManager, ResourceLoaderA if (oldCache != null) { cache = oldCache; } else { - map.setMaxSize(config.getMaxSize()); + map.setMaxSize(config.getMaxSize(), config.getEvictionMode()); for (MapEntryListener listener : config.getListeners()) { map.addListener(listener); }