diff --git a/src/main/java/org/redisson/RedissonCache.java b/src/main/java/org/redisson/RedissonCache.java index 9ba66a0f6..a80c8164c 100644 --- a/src/main/java/org/redisson/RedissonCache.java +++ b/src/main/java/org/redisson/RedissonCache.java @@ -68,7 +68,7 @@ public class RedissonCache extends RedissonMap implements RCache> EVAL_CONTAINS_VALUE = new RedisCommand>("EVAL", new ObjectListReplayDecoder(), 5, ValueType.MAP_VALUE); private static final RedisCommand> EVAL_HGETALL = new RedisCommand>("EVAL", new ObjectMapReplayDecoder(), ValueType.MAP); - private static final RedisCommand EVAL_FAST_REMOVE = new RedisCommand("EVAL", 2, ValueType.MAP_KEY); + private static final RedisCommand EVAL_FAST_REMOVE = new RedisCommand("EVAL", 5, ValueType.MAP_KEY); private static final RedisCommand EVAL_REMOVE_EXPIRED = new RedisCommand("EVAL", 5); @@ -107,9 +107,9 @@ public class RedissonCache extends RedissonMap implements RCache extends RedissonMap implements RCache 0 then " + "local s = redis.call('zrem', KEYS[2], unpack(expiredKeys)); " + "redis.call('hdel', KEYS[1], unpack(expiredKeys)); " @@ -323,12 +323,10 @@ public class RedissonCache extends RedissonMap implements RCache args = new ArrayList(keys.length); - args.addAll(Arrays.asList(keys)); return commandExecutor.evalWriteAsync(getName(), codec, EVAL_FAST_REMOVE, "redis.call('zrem', KEYS[2], unpack(ARGV)); " + "return redis.call('hdel', KEYS[1], unpack(ARGV)); ", - Arrays.asList(getName(), getTimeoutSetName()), args.toArray()); + Arrays.asList(getName(), getTimeoutSetName()), keys); } MapScanResult scanIterator(InetSocketAddress client, long startPos) {