diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundValueOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundValueOperations.java index 42e5866ba..f2c246069 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundValueOperations.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundValueOperations.java @@ -40,6 +40,9 @@ public interface BoundValueOperations extends KeyBound { Integer append(String value); - String substract(int start, int end); + String get(int start, int end); + void set(int start, int end); + + Long size(); } diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundValueOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundValueOperations.java index 8d8256ab3..50313671d 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundValueOperations.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundValueOperations.java @@ -56,8 +56,8 @@ class DefaultBoundValueOperations extends DefaultKeyBound implements Bo } @Override - public String substract(int start, int end) { - return ops.substract(getKey(), start, end); + public String get(int start, int end) { + return ops.get(getKey(), start, end); } @Override @@ -75,6 +75,16 @@ class DefaultBoundValueOperations extends DefaultKeyBound implements Bo return ops.setIfAbsent(getKey(), value); } + @Override + public void set(int start, int end) { + ops.set(getKey(), start, end); + } + + @Override + public Long size() { + return ops.size(getKey()); + } + @Override public RedisOperations getOperations() { return ops.getOperations(); diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisTemplate.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisTemplate.java index 0d85da83f..76d338c7e 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisTemplate.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisTemplate.java @@ -212,7 +212,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation * Sets the string value serializer to be used by this template (when the arguments or return types * are always strings). Defaults to {@link StringRedisSerializer}. * - * @see ValueOperations#substract(Object, int, int) + * @see ValueOperations#get(Object, int, int) * @param stringSerializer The stringValueSerializer to set. */ public void setStringSerializer(RedisSerializer stringSerializer) { @@ -713,7 +713,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation } @Override - public String substract(K key, final int start, final int end) { + public String get(K key, final int start, final int end) { final byte[] rawKey = rawKey(key); byte[] rawReturn = execute(new RedisCallback() { @@ -831,6 +831,32 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation }, true); } + + @Override + public void set(K key, final int start, final int end) { + final byte[] rawKey = rawKey(key); + + execute(new RedisCallback() { + @Override + public Object doInRedis(RedisConnection connection) { + connection.setRange(rawKey, start, end); + return null; + } + }, true); + } + + @Override + public Long size(K key) { + final byte[] rawKey = rawKey(key); + + return execute(new RedisCallback() { + @Override + public Long doInRedis(RedisConnection connection) { + return connection.strLen(rawKey); + } + }, true); + } + @Override public RedisOperations getOperations() { return RedisTemplate.this; diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ValueOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ValueOperations.java index 6882019e3..29053f712 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ValueOperations.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ValueOperations.java @@ -46,7 +46,11 @@ public interface ValueOperations { Integer append(K key, String value); - String substract(K key, int start, int end); + String get(K key, int start, int end); + + void set(K key, int start, int end); + + Long size(K key); RedisOperations getOperations(); }