From 5c810b5ff6fce5d6eac2a56f7f9272ee995903a8 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:57:17 +0800 Subject: [PATCH] --- src/org/redkale/source/CacheMemorySource.java | 12 ++++++++++++ src/org/redkale/source/CacheSource.java | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/src/org/redkale/source/CacheMemorySource.java b/src/org/redkale/source/CacheMemorySource.java index f18162ae3..ac0cd97bf 100644 --- a/src/org/redkale/source/CacheMemorySource.java +++ b/src/org/redkale/source/CacheMemorySource.java @@ -355,6 +355,13 @@ public final class CacheMemorySource extends AbstractService i return list; } + @Override + public int hsize(final String key) { + CacheEntry entry = container.get(key); + if (entry == null || entry.mapValue == null) return 0; + return entry.mapValue.keySet().size(); + } + @Override public long hincr(final String key, String field) { return hincr(key, field, 1); @@ -551,6 +558,11 @@ public final class CacheMemorySource extends AbstractService i return CompletableFuture.supplyAsync(() -> hkeys(key), getExecutor()); } + @Override + public CompletableFuture hsizeAsync(final String key) { + return CompletableFuture.supplyAsync(() -> hsize(key), getExecutor()); + } + @Override public CompletableFuture hincrAsync(final String key, String field) { return CompletableFuture.supplyAsync(() -> hincr(key, field), getExecutor()); diff --git a/src/org/redkale/source/CacheSource.java b/src/org/redkale/source/CacheSource.java index 89b58fbe1..ff25f35b4 100644 --- a/src/org/redkale/source/CacheSource.java +++ b/src/org/redkale/source/CacheSource.java @@ -75,6 +75,8 @@ public interface CacheSource { public List hkeys(final String key); + public int hsize(final String key); + public long hincr(final String key, String field); public long hincr(final String key, String field, long num); @@ -324,6 +326,8 @@ public interface CacheSource { public CompletableFuture> hkeysAsync(final String key); + public CompletableFuture hsizeAsync(final String key); + public CompletableFuture hincrAsync(final String key, String field); public CompletableFuture hincrAsync(final String key, String field, long num);