From e6dce7870d205c2f035961915d36169ce94eeefd Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Sat, 22 Jun 2024 19:48:59 +0300 Subject: [PATCH] Feature - RMapCacheNative implementation which uses Redis 7.4+ commands #5954 --- .../java/org/redisson/api/RMapCacheNative.java | 15 +++++++++++++++ .../org/redisson/api/RMapCacheNativeAsync.java | 14 ++++++++++++++ .../org/redisson/api/RMapCacheNativeReactive.java | 15 +++++++++++++++ .../java/org/redisson/api/RMapCacheNativeRx.java | 15 +++++++++++++++ 4 files changed, 59 insertions(+) diff --git a/redisson/src/main/java/org/redisson/api/RMapCacheNative.java b/redisson/src/main/java/org/redisson/api/RMapCacheNative.java index c754d1329..3121dfe6a 100644 --- a/redisson/src/main/java/org/redisson/api/RMapCacheNative.java +++ b/redisson/src/main/java/org/redisson/api/RMapCacheNative.java @@ -281,4 +281,19 @@ public interface RMapCacheNative extends RMap, RMapCacheNativeAsync< */ int expireEntriesIfNotSet(Set keys, Duration ttl); + /** + * Adds object event listener + * + * @see org.redisson.api.listener.TrackingListener + * @see org.redisson.api.listener.MapPutListener + * @see org.redisson.api.listener.MapRemoveListener + * @see org.redisson.api.listener.MapExpiredListener + * @see org.redisson.api.ExpiredObjectListener + * @see org.redisson.api.DeletedObjectListener + * + * @param listener object event listener + * @return listener id + */ + int addListener(ObjectListener listener); + } diff --git a/redisson/src/main/java/org/redisson/api/RMapCacheNativeAsync.java b/redisson/src/main/java/org/redisson/api/RMapCacheNativeAsync.java index f87c77205..7ca14414e 100644 --- a/redisson/src/main/java/org/redisson/api/RMapCacheNativeAsync.java +++ b/redisson/src/main/java/org/redisson/api/RMapCacheNativeAsync.java @@ -281,5 +281,19 @@ public interface RMapCacheNativeAsync extends RMapAsync { */ RFuture expireEntriesIfLessAsync(Set keys, Duration ttl); + /** + * Adds object event listener + * + * @see org.redisson.api.listener.TrackingListener + * @see org.redisson.api.listener.MapPutListener + * @see org.redisson.api.listener.MapRemoveListener + * @see org.redisson.api.listener.MapExpiredListener + * @see org.redisson.api.ExpiredObjectListener + * @see org.redisson.api.DeletedObjectListener + * + * @param listener - object event listener + * @return listener id + */ + RFuture addListenerAsync(ObjectListener listener); } diff --git a/redisson/src/main/java/org/redisson/api/RMapCacheNativeReactive.java b/redisson/src/main/java/org/redisson/api/RMapCacheNativeReactive.java index 2704795dd..213310f3d 100644 --- a/redisson/src/main/java/org/redisson/api/RMapCacheNativeReactive.java +++ b/redisson/src/main/java/org/redisson/api/RMapCacheNativeReactive.java @@ -281,4 +281,19 @@ public interface RMapCacheNativeReactive extends RMapReactive, RDest */ Mono expireEntriesIfNotSet(Set keys, Duration ttl); + /** + * Adds object event listener + * + * @see org.redisson.api.listener.TrackingListener + * @see org.redisson.api.listener.MapPutListener + * @see org.redisson.api.listener.MapRemoveListener + * @see org.redisson.api.listener.MapExpiredListener + * @see org.redisson.api.ExpiredObjectListener + * @see org.redisson.api.DeletedObjectListener + * + * @param listener object event listener + * @return listener id + */ + Mono addListener(ObjectListener listener); + } diff --git a/redisson/src/main/java/org/redisson/api/RMapCacheNativeRx.java b/redisson/src/main/java/org/redisson/api/RMapCacheNativeRx.java index df615ab15..f0c216727 100644 --- a/redisson/src/main/java/org/redisson/api/RMapCacheNativeRx.java +++ b/redisson/src/main/java/org/redisson/api/RMapCacheNativeRx.java @@ -284,4 +284,19 @@ public interface RMapCacheNativeRx extends RMapRx, RDestroyable { */ Single expireEntriesIfNotSet(Set keys, Duration ttl); + /** + * Adds object event listener + * + * @see org.redisson.api.listener.TrackingListener + * @see org.redisson.api.listener.MapPutListener + * @see org.redisson.api.listener.MapRemoveListener + * @see org.redisson.api.listener.MapExpiredListener + * @see org.redisson.api.ExpiredObjectListener + * @see org.redisson.api.DeletedObjectListener + * + * @param listener object event listener + * @return listener id + */ + Single addListener(ObjectListener listener); + }