diff --git a/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java b/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java index 698f14778..6567d3157 100644 --- a/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java +++ b/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java @@ -45,6 +45,7 @@ import org.springframework.util.Assert; * * @author Christoph Strobl * @author Mark Paluch + * @author André Prata * @since 2.0 */ class DefaultRedisCacheWriter implements RedisCacheWriter { @@ -127,11 +128,15 @@ class DefaultRedisCacheWriter implements RedisCacheWriter { } try { - if (connection.setNX(key, value)) { - if (shouldExpireWithin(ttl)) { - connection.pExpire(key, ttl.toMillis()); - } + boolean put; + if (shouldExpireWithin(ttl)) { + put = connection.set(key, value, Expiration.milliseconds(ttl.toMillis()), SetOption.ifAbsent()); + } else { + put = connection.setNX(key, value); + } + + if (put) { return null; }