diff --git a/src/main/java/org/redisson/RedissonListMultimap.java b/src/main/java/org/redisson/RedissonListMultimap.java index 6669727d7..5fd88ac8e 100644 --- a/src/main/java/org/redisson/RedissonListMultimap.java +++ b/src/main/java/org/redisson/RedissonListMultimap.java @@ -66,18 +66,7 @@ public class RedissonListMultimap extends RedissonMultimap implement Arrays.asList(getName())); } - public Future keySizeAsync() { - return commandExecutor.evalReadAsync(getName(), codec, RedisCommands.EVAL_INTEGER, - "local keys = redis.call('hgetall', KEYS[1]); " + - "local size = 0; " + - "for i, v in ipairs(keys) do " + - "if i % 2 == 0 then " + - "size = size + 1; " + - "end;" + - "end; " + - "return size; ", - Arrays.asList(getName())); - } + public Future containsKeyAsync(Object key) { try { diff --git a/src/main/java/org/redisson/RedissonMultimap.java b/src/main/java/org/redisson/RedissonMultimap.java index d2372124e..8c64a592f 100644 --- a/src/main/java/org/redisson/RedissonMultimap.java +++ b/src/main/java/org/redisson/RedissonMultimap.java @@ -255,8 +255,12 @@ public abstract class RedissonMultimap extends RedissonExpirable implement "return redis.call('persist', KEYS[1]); ", Arrays.asList(getName())); } - - + + public Future keySizeAsync() { + return commandExecutor.readAsync(getName(), LongCodec.INSTANCE, RedisCommands.HLEN, getName()); + } + + MapScanResult scanIterator(InetSocketAddress client, long startPos) { Future> f = commandExecutor.readAsync(client, getName(), new ScanCodec(codec, StringCodec.INSTANCE), RedisCommands.HSCAN, getName(), startPos); return get(f); diff --git a/src/main/java/org/redisson/RedissonSetMultimap.java b/src/main/java/org/redisson/RedissonSetMultimap.java index 94b2a3954..74ee7a333 100644 --- a/src/main/java/org/redisson/RedissonSetMultimap.java +++ b/src/main/java/org/redisson/RedissonSetMultimap.java @@ -69,18 +69,7 @@ public class RedissonSetMultimap extends RedissonMultimap implements Arrays.asList(getName())); } - public Future keySizeAsync() { - return commandExecutor.evalReadAsync(getName(), codec, RedisCommands.EVAL_INTEGER, - "local keys = redis.call('hgetall', KEYS[1]); " + - "local size = 0; " + - "for i, v in ipairs(keys) do " + - "if i % 2 == 0 then " + - "size = size + 1; " + - "end;" + - "end; " + - "return size; ", - Arrays.asList(getName())); - } + public Future containsKeyAsync(Object key) { try {