diff --git a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/RedisHashCommands.java b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/RedisHashCommands.java index 559e3bf67..e51cf5ddd 100644 --- a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/RedisHashCommands.java +++ b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/RedisHashCommands.java @@ -34,6 +34,8 @@ public interface RedisHashCommands { Boolean hSet(String key, String field, String value); + Boolean hSetNX(String key, String field, String value); + String hGet(String key, String field); List hMGet(String key, String... fields); diff --git a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jedis/JedisConnection.java b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jedis/JedisConnection.java index 9cc25932c..8e563c305 100644 --- a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jedis/JedisConnection.java +++ b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jedis/JedisConnection.java @@ -329,6 +329,19 @@ public class JedisConnection implements RedisConnection { } } + @Override + public Boolean hSetNX(String key, String field, String value) { + try { + if (isQueueing()) { + transaction.hsetnx(key, field, value); + return null; + } + return JedisUtils.convertCodeReply(jedis.hsetnx(key, field, value)); + } catch (Exception ex) { + throw convertJedisAccessException(ex); + } + } + @Override public String get(String key) { try { diff --git a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jredis/JredisConnection.java b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jredis/JredisConnection.java index 7625eeb6c..b4a2f0bdb 100644 --- a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jredis/JredisConnection.java +++ b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/connection/jredis/JredisConnection.java @@ -788,6 +788,11 @@ public class JredisConnection implements RedisConnection { } } + @Override + public Boolean hSetNX(String key, String field, String value) { + throw new UnsupportedOperationException(); + } + @Override public List hVals(String key) { try {