diff --git a/src/main/java/org/redisson/reactive/RedissonMapCacheReactive.java b/src/main/java/org/redisson/reactive/RedissonMapCacheReactive.java index 73a99a9ec..183f9e460 100644 --- a/src/main/java/org/redisson/reactive/RedissonMapCacheReactive.java +++ b/src/main/java/org/redisson/reactive/RedissonMapCacheReactive.java @@ -332,8 +332,12 @@ public class RedissonMapCacheReactive extends RedissonMapReactive im } return commandExecutor.evalWriteReactive(getName(), codec, EVAL_FAST_REMOVE, - "redis.call('zrem', KEYS[2], unpack(ARGV)); " - + "return redis.call('hdel', KEYS[1], unpack(ARGV)); ", + "local r = 0;" + + "for i=1, #ARGV,5000 do " + + "r += redis.call('hdel', KEYS[1], unpack(ARGV, i, math.min(i+4999, #ARGV))); " + + "redis.call('zrem', KEYS[2], unpack(ARGV, i, math.min(i+4999, #ARGV))); " + + "end " + + "return r;", Arrays.asList(getName(), getTimeoutSetName()), keys); }