diff --git a/src/main/java/org/redisson/RedissonMap.java b/src/main/java/org/redisson/RedissonMap.java index ac7b0b0f6..25ccf0161 100644 --- a/src/main/java/org/redisson/RedissonMap.java +++ b/src/main/java/org/redisson/RedissonMap.java @@ -194,8 +194,7 @@ public class RedissonMap extends RedissonExpirable implements RMap { @Override public Future putIfAbsentAsync(K key, V value) { return commandExecutor.evalWriteAsync(getName(), codec, EVAL_PUT, - "if redis.call('hexists', KEYS[1], ARGV[1]) == 0 then " - + "redis.call('hset', KEYS[1], ARGV[1], ARGV[2]); " + "if redis.call('hsetnx', KEYS[1], ARGV[1], ARGV[2]) == 1 then " + "return nil " + "else " + "return redis.call('hget', KEYS[1], ARGV[1]) "