From 863acb0823fdd912caa0258c06733d4b11e40e02 Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 8 Dec 2015 11:02:59 +0300 Subject: [PATCH] RBatch.getCache added. Comments added. #195 --- src/main/java/org/redisson/RedissonBatch.java | 11 +++++++++++ src/main/java/org/redisson/RedissonCache.java | 7 +++++-- src/main/java/org/redisson/core/RBatch.java | 18 ++++++++++++++++++ src/main/java/org/redisson/core/RCache.java | 7 +++++-- .../java/org/redisson/core/RCacheAsync.java | 2 +- .../org/redisson/core/RExpirableAsync.java | 2 +- src/main/java/org/redisson/core/RMapAsync.java | 1 - 7 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/redisson/RedissonBatch.java b/src/main/java/org/redisson/RedissonBatch.java index 895ea8c14..2496e4a0d 100644 --- a/src/main/java/org/redisson/RedissonBatch.java +++ b/src/main/java/org/redisson/RedissonBatch.java @@ -25,6 +25,7 @@ import org.redisson.core.RBatch; import org.redisson.core.RBitSetAsync; import org.redisson.core.RBlockingQueueAsync; import org.redisson.core.RBucketAsync; +import org.redisson.core.RCacheAsync; import org.redisson.core.RDequeAsync; import org.redisson.core.RHyperLogLogAsync; import org.redisson.core.RKeysAsync; @@ -162,6 +163,16 @@ public class RedissonBatch implements RBatch { return new RedissonBitSet(executorService, name); } + @Override + public RCacheAsync getCache(String name, Codec codec) { + return new RedissonCache(codec, executorService, name); + } + + @Override + public RCacheAsync getCache(String name) { + return new RedissonCache(executorService, name); + } + @Override public RScriptAsync getScript() { return new RedissonScript(executorService); diff --git a/src/main/java/org/redisson/RedissonCache.java b/src/main/java/org/redisson/RedissonCache.java index 30afddd0d..d3a99d477 100644 --- a/src/main/java/org/redisson/RedissonCache.java +++ b/src/main/java/org/redisson/RedissonCache.java @@ -47,8 +47,11 @@ import io.netty.util.concurrent.FutureListener; import io.netty.util.concurrent.Promise; /** - * Distributed and concurrent implementation of {@link java.util.concurrent.ConcurrentMap} - * and {@link java.util.Map} + *

Map-based cache with ability to set TTL for each entry via + * {@link #put(Object, Object, long, TimeUnit)} or {@link #putIfAbsent(Object, Object, long, TimeUnit)} + * And therefore has an complex lua-scripts inside.

+ * + *

If TTL is not required then it's better to use {@link org.redisson.RedissonMap}.

* * @author Nikita Koksharov * diff --git a/src/main/java/org/redisson/core/RBatch.java b/src/main/java/org/redisson/core/RBatch.java index 7c1301126..a07ebdc38 100644 --- a/src/main/java/org/redisson/core/RBatch.java +++ b/src/main/java/org/redisson/core/RBatch.java @@ -36,6 +36,24 @@ import io.netty.util.concurrent.Future; */ public interface RBatch { + /** + * Returns map-based cache instance with eviction support by name + * using provided codec for both cache keys and values. + * + * @param name + * @param codec + * @return + */ + RCacheAsync getCache(String name, Codec codec); + + /** + * Returns map-based cache instance with eviction support by name. + * + * @param name + * @return + */ + RCacheAsync getCache(String name); + /** * Returns object holder by name * diff --git a/src/main/java/org/redisson/core/RCache.java b/src/main/java/org/redisson/core/RCache.java index 300c08a58..1d6fd1305 100644 --- a/src/main/java/org/redisson/core/RCache.java +++ b/src/main/java/org/redisson/core/RCache.java @@ -18,8 +18,11 @@ package org.redisson.core; import java.util.concurrent.TimeUnit; /** - * Distributed and concurrent implementation of {@link java.util.concurrent.ConcurrentMap} - * and {@link java.util.Map} + *

Map-based cache with ability to set TTL for each entry via + * {@link #put(Object, Object, long, TimeUnit)} or {@link #putIfAbsent(Object, Object, long, TimeUnit)} + * And therefore has an complex lua-scripts inside.

+ * + *

If TTL is not required then it's better to use {@link org.redisson.RedissonMap}.

* * @author Nikita Koksharov * diff --git a/src/main/java/org/redisson/core/RCacheAsync.java b/src/main/java/org/redisson/core/RCacheAsync.java index 2ef8d2dfe..8d348585c 100644 --- a/src/main/java/org/redisson/core/RCacheAsync.java +++ b/src/main/java/org/redisson/core/RCacheAsync.java @@ -20,7 +20,7 @@ import java.util.concurrent.TimeUnit; import io.netty.util.concurrent.Future; /** - * Async map functions + * Async map-based cache functions * * @author Nikita Koksharov * diff --git a/src/main/java/org/redisson/core/RExpirableAsync.java b/src/main/java/org/redisson/core/RExpirableAsync.java index 9848ab306..5f56e5939 100644 --- a/src/main/java/org/redisson/core/RExpirableAsync.java +++ b/src/main/java/org/redisson/core/RExpirableAsync.java @@ -22,7 +22,7 @@ import io.netty.util.concurrent.Future; /** * Base async interface for all Redisson objects - * which support expiration or TTL + * which supports expiration (TTL) * * @author Nikita Koksharov * diff --git a/src/main/java/org/redisson/core/RMapAsync.java b/src/main/java/org/redisson/core/RMapAsync.java index bff719113..280beca1e 100644 --- a/src/main/java/org/redisson/core/RMapAsync.java +++ b/src/main/java/org/redisson/core/RMapAsync.java @@ -15,7 +15,6 @@ */ package org.redisson.core; -import java.util.Collection; import java.util.Map; import java.util.Set;