From 67407f0e66d59a4cb9d966da31b17060e8f18586 Mon Sep 17 00:00:00 2001 From: Nicola Dardanis Date: Tue, 13 Dec 2022 14:34:21 +0100 Subject: [PATCH] feat: add evictions metrics support for RedissonCache backed by RMapCache Signed-off-by: Nicola Dardanis --- .../org/redisson/spring/cache/RedissonCache.java | 12 +++++++++++- .../redisson/spring/cache/RedissonCacheMetrics.java | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java b/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java index 4ae9922c2964..c95145e11b12 100644 --- a/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java +++ b/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java @@ -46,6 +46,8 @@ public class RedissonCache implements Cache { private final AtomicLong puts = new AtomicLong(); private final AtomicLong misses = new AtomicLong(); + + private AtomicLong evictions = new AtomicLong(); public RedissonCache(RMapCache mapCache, CacheConfig config, boolean allowNullValues) { this(mapCache, allowNullValues); @@ -144,7 +146,8 @@ public ValueWrapper putIfAbsent(Object key, Object value) { @Override public void evict(Object key) { - map.fastRemove(key); + long delta = map.fastRemove(key); + addCacheEvictions(delta); } @Override @@ -238,6 +241,10 @@ long getCacheMisses(){ long getCachePuts() { return puts.get(); } + + long getCacheEvictions() { + return evictions.get(); + } private void addCachePut() { puts.incrementAndGet(); @@ -251,4 +258,7 @@ private void addCacheMiss(){ misses.incrementAndGet(); } + private void addCacheEvictions(long delta) { + evictions.addAndGet(delta); + } } diff --git a/redisson/src/main/java/org/redisson/spring/cache/RedissonCacheMetrics.java b/redisson/src/main/java/org/redisson/spring/cache/RedissonCacheMetrics.java index c41b48846598..819c52bdb203 100644 --- a/redisson/src/main/java/org/redisson/spring/cache/RedissonCacheMetrics.java +++ b/redisson/src/main/java/org/redisson/spring/cache/RedissonCacheMetrics.java @@ -63,7 +63,7 @@ protected Long missCount() { @Override protected Long evictionCount() { - return null; + return cache.getCacheEvictions(); } @Override