From e79427f70832f295f737e6423a465878e8ab7056 Mon Sep 17 00:00:00 2001 From: Redkale Date: Thu, 22 Dec 2022 13:05:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96CacheSource?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/redkale/source/CacheMemorySource.java | 22 +++++++++++++++++++ .../java/org/redkale/source/CacheSource.java | 12 ++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/redkale/source/CacheMemorySource.java b/src/main/java/org/redkale/source/CacheMemorySource.java index 8e7359863..239c9e229 100644 --- a/src/main/java/org/redkale/source/CacheMemorySource.java +++ b/src/main/java/org/redkale/source/CacheMemorySource.java @@ -1120,6 +1120,28 @@ public final class CacheMemorySource extends AbstractCacheSource { return collection == null ? 0 : collection.size(); } + @Override + public int llen(final String key) { + Collection collection = (Collection) get(key, Object.class); + return collection == null ? 0 : collection.size(); + } + + @Override + public int scard(final String key) { + Collection collection = (Collection) get(key, Object.class); + return collection == null ? 0 : collection.size(); + } + + @Override + public CompletableFuture llenAsync(final String key) { + return CompletableFuture.supplyAsync(() -> llen(key), getExecutor()); + } + + @Override + public CompletableFuture scardAsync(final String key) { + return CompletableFuture.supplyAsync(() -> scard(key), getExecutor()); + } + @Override public CompletableFuture getCollectionSizeAsync(final String key) { return CompletableFuture.supplyAsync(() -> getCollectionSize(key), getExecutor()); diff --git a/src/main/java/org/redkale/source/CacheSource.java b/src/main/java/org/redkale/source/CacheSource.java index f1499cd9c..af7408dc6 100644 --- a/src/main/java/org/redkale/source/CacheSource.java +++ b/src/main/java/org/redkale/source/CacheSource.java @@ -175,6 +175,8 @@ public interface CacheSource extends Resourcable { public Map hmap(final String key, final Type type, int offset, int limit, String pattern); //------------------------ list ------------------------ + public int llen(final String key); + public List lrange(final String key, final Type componentType); public Map> lrange(final Type componentType, final String... keys); @@ -193,7 +195,9 @@ public interface CacheSource extends Resourcable { public int lremLong(final String key, final long value); - //------------------------ set ------------------------ + //------------------------ set ------------------------ + public int scard(final String key); + public Set smembers(final String key, final Type componentType); public Map> smembers(final Type componentType, final String... keys); @@ -425,7 +429,9 @@ public interface CacheSource extends Resourcable { public CompletableFuture> hmapAsync(final String key, final Type type, int offset, int limit, String pattern); - //------------------------ listAsync ------------------------ + //------------------------ listAsync ------------------------ + public CompletableFuture llenAsync(final String key); + public CompletableFuture> lrangeAsync(final String key, final Type componentType); public CompletableFuture>> lrangeAsync(final Type componentType, final String... keys); @@ -445,6 +451,8 @@ public interface CacheSource extends Resourcable { public CompletableFuture lremLongAsync(final String key, final long value); //------------------------ setAsync ------------------------ + public CompletableFuture scardAsync(final String key); + public CompletableFuture> smembersAsync(final String key, final Type componentType); public CompletableFuture>> smembersAsync(final Type componentType, final String... keys);