|
|
|
@ -1291,7 +1291,11 @@ public class RedissonMapCache<K, V> extends RedissonMap<K, V> implements RMapCac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return commandExecutor.evalWriteAsync(getName(), codec, RedisCommands.EVAL_VOID,
|
|
|
|
|
"for i, value in ipairs(ARGV) do "
|
|
|
|
|
"for i=1, #ARGV, 5000 do "
|
|
|
|
|
+ "redis.call('hmset', KEYS[1], unpack(ARGV, i, math.min(i+4999, table.getn(ARGV)))) "
|
|
|
|
|
+ "end; "
|
|
|
|
|
|
|
|
|
|
+ "for i, value in ipairs(ARGV) do "
|
|
|
|
|
+ "if i % 2 == 0 then "
|
|
|
|
|
+ "local val = struct.pack('dLc0', 0, string.len(value), value); "
|
|
|
|
|
+ "ARGV[i] = val; "
|
|
|
|
@ -1300,8 +1304,7 @@ public class RedissonMapCache<K, V> extends RedissonMap<K, V> implements RMapCac
|
|
|
|
|
+ "local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(value), value); "
|
|
|
|
|
+ "redis.call('publish', KEYS[2], msg); "
|
|
|
|
|
+ "end;"
|
|
|
|
|
+ "end;"
|
|
|
|
|
+ "return redis.call('hmset', KEYS[1], unpack(ARGV)); ",
|
|
|
|
|
+ "end;",
|
|
|
|
|
Arrays.<Object>asList(getName(), getCreatedChannelName()), params.toArray());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|