From 2e05ca43b653f785a1753a0997be48d80ed017e3 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Tue, 7 Dec 2010 20:25:53 +0200
Subject: [PATCH 01/12] + hopefully finally finished with the javadocs
---
.../keyvalue/redis/connection/DefaultSortParameters.java | 6 +++---
.../redis/connection/jedis/JedisConnectionFactory.java | 4 ++--
.../keyvalue/redis/connection/jedis/package-info.java | 2 +-
.../keyvalue/redis/connection/jredis/package-info.java | 2 +-
.../springframework/data/keyvalue/redis/package-info.java | 8 ++++++++
.../keyvalue/redis/support/collections/RedisZSet.java | 5 +++--
.../keyvalue/redis/support/collections/package-info.java | 7 ++++---
7 files changed, 22 insertions(+), 12 deletions(-)
create mode 100644 spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/package-info.java
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/DefaultSortParameters.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/DefaultSortParameters.java
index b03c91fef..0098ac36e 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/DefaultSortParameters.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/DefaultSortParameters.java
@@ -56,11 +56,11 @@ public class DefaultSortParameters implements SortParameters {
* @param order
* @param alphabetic
*/
- public DefaultSortParameters(byte[] by, Range limit, byte[] get, Order order, Boolean alphabetic) {
+ public DefaultSortParameters(byte[] byPattern, Range limit, byte[] getPattern, Order order, Boolean alphabetic) {
super();
- this.byPattern = by;
+ this.byPattern = byPattern;
this.limit = limit;
- this.getPattern = get;
+ this.getPattern = getPattern;
this.order = order;
this.alphabetic = alphabetic;
}
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnectionFactory.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnectionFactory.java
index 2cb20a879..186229230 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnectionFactory.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnectionFactory.java
@@ -59,7 +59,7 @@ public class JedisConnectionFactory implements InitializingBean, DisposableBean,
/**
* Constructs a new JedisConnectionFactory instance.
*
- * @param hostname
+ * @param hostName
*/
public JedisConnectionFactory(String hostName) {
Assert.hasText(hostName);
@@ -69,7 +69,7 @@ public class JedisConnectionFactory implements InitializingBean, DisposableBean,
/**
* Constructs a new JedisConnectionFactory instance.
*
- * @param hostname
+ * @param hostName
* @param port
*/
public JedisConnectionFactory(String hostName, int port) {
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/package-info.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/package-info.java
index b1f4bfd97..40ce7c10d 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/package-info.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/package-info.java
@@ -1,5 +1,5 @@
/**
- * Connection package for Jedis library.
+ * Connection package for Jedis library.
*/
package org.springframework.data.keyvalue.redis.connection.jedis;
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/package-info.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/package-info.java
index 50fad613e..0affe42a0 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/package-info.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/package-info.java
@@ -1,5 +1,5 @@
/**
- * Connection package for JRedis library.
+ * Connection package for JRedis library.
*/
package org.springframework.data.keyvalue.redis.connection.jredis;
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/package-info.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/package-info.java
new file mode 100644
index 000000000..96920cf44
--- /dev/null
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/package-info.java
@@ -0,0 +1,8 @@
+/**
+ * Root package for integrating Redis with Spring concepts.
+ *
+ * Provides Redis specific exception hierarchy on top of the {@code org.springframework.dao} package.
+ *
+ */
+package org.springframework.data.keyvalue.redis;
+
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/RedisZSet.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/RedisZSet.java
index 991e3b176..c0b095a84 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/RedisZSet.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/RedisZSet.java
@@ -22,8 +22,9 @@ import java.util.Set;
import java.util.SortedSet;
/**
- * Redis ZSet contract. Acts as a {@link SortedSet} based on the given priorities. Since using a {@link Comparator}
- * does not apply, a ZSet implements the {@link SortedSet} methods where applicable.
+ * Redis ZSet (or sorted set (by weight)). Acts as a {@link SortedSet} based on the given priorities or weights associated with each item.
+ *
+ * Since using a {@link Comparator} does not apply, a ZSet implements the {@link SortedSet} methods where applicable.
*
* @author Costin Leau
*/
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/package-info.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/package-info.java
index 2ecbed194..e00eeab04 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/package-info.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/package-info.java
@@ -2,10 +2,11 @@
* Package providing implementations for most of the {@code java.util} collections on top of Redis.
*
* For indexed collections, such as {@link java.util.List}, {@link java.util.Queue} or {@link java.util.Deque}
- * consider {@link RedisList}.
- * For collections without duplicates the obvious candidate is {@link RedisSet}. Use {@link RedisZSet} if a
+ * consider {@link org.springframework.data.keyvalue.redis.support.collections.RedisList}.
+ * For collections without duplicates the obvious candidate is {@link org.springframework.data.keyvalue.redis.support.collections.RedisSet}. Use
+ * {@link org.springframework.data.keyvalue.redis.support.collections.RedisZSet} if a
* certain order is required.
- * Lastly, for key/value associations {@link RedisMap} providing a Map-like abstraction on top of a Redis hash.
+ * Lastly, for key/value associations {@link org.springframework.data.keyvalue.redis.support.collections.RedisMap} providing a Map-like abstraction on top of a Redis hash.
*/
package org.springframework.data.keyvalue.redis.support.collections;
From dbaee10617690cf8019f204109f5ec3286eecca8 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Wed, 8 Dec 2010 21:28:49 +0200
Subject: [PATCH 02/12] + renamed methods on template to better convey the
meaning
---
.../core/DefaultBoundHashOperations.java | 2 +-
.../core/DefaultBoundListOperations.java | 2 +-
.../redis/core/DefaultBoundSetOperations.java | 2 +-
.../core/DefaultBoundValueOperations.java | 2 +-
.../core/DefaultBoundZSetOperations.java | 2 +-
.../keyvalue/redis/core/RedisTemplate.java | 20 +++++++++----------
.../keyvalue/redis/core/ZSetOperations.java | 8 ++++----
.../support/atomic/RedisAtomicInteger.java | 2 +-
.../redis/support/atomic/RedisAtomicLong.java | 2 +-
.../support/collections/DefaultRedisList.java | 2 +-
.../support/collections/DefaultRedisMap.java | 2 +-
.../support/collections/DefaultRedisSet.java | 8 ++++----
.../support/collections/DefaultRedisZSet.java | 6 +++---
.../collections/AbstractRedisListTests.java | 2 +-
.../collections/AbstractRedisMapTests.java | 2 +-
.../collections/AbstractRedisSetTests.java | 2 +-
.../collections/AbstractRedisZSetTest.java | 2 +-
17 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundHashOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundHashOperations.java
index f531d5628..4ed2aece3 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundHashOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundHashOperations.java
@@ -36,7 +36,7 @@ class DefaultBoundHashOperations extends DefaultKeyBound implement
*/
public DefaultBoundHashOperations(H key, RedisOperations operations) {
super(key);
- this.ops = operations.hashOps();
+ this.ops = operations.getHashOps();
}
@Override
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundListOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundListOperations.java
index c69181acb..5793f57ae 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundListOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundListOperations.java
@@ -36,7 +36,7 @@ class DefaultBoundListOperations extends DefaultKeyBound implements Bou
*/
public DefaultBoundListOperations(K key, RedisOperations operations) {
super(key);
- this.ops = operations.listOps();
+ this.ops = operations.getListOps();
}
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
index b2770c0d9..8050abc2b 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
@@ -37,7 +37,7 @@ class DefaultBoundSetOperations extends DefaultKeyBound implements Boun
*/
DefaultBoundSetOperations(K key, RedisOperations operations) {
super(key);
- this.ops = operations.setOps();
+ this.ops = operations.getSetOps();
}
@Override
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 8de451738..3e459ff78 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
@@ -32,7 +32,7 @@ class DefaultBoundValueOperations extends DefaultKeyBound implements Bo
*/
public DefaultBoundValueOperations(K key, RedisOperations operations) {
super(key);
- this.ops = operations.valueOps();
+ this.ops = operations.getValueOps();
}
@Override
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundZSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundZSetOperations.java
index 44740a7c5..412ee6a19 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundZSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundZSetOperations.java
@@ -36,7 +36,7 @@ class DefaultBoundZSetOperations extends DefaultKeyBound implements Bou
*/
public DefaultBoundZSetOperations(K key, RedisOperations oeprations) {
super(key);
- this.ops = oeprations.zSetOps();
+ this.ops = oeprations.getZSetOps();
}
@Override
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 bf9231745..acc89699d 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
@@ -561,12 +561,12 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
}
@Override
- public BoundValueOperations forValue(K key) {
+ public BoundValueOperations boundValueOps(K key) {
return new DefaultBoundValueOperations(key, this);
}
@Override
- public ValueOperations valueOps() {
+ public ValueOperations getValueOps() {
return new DefaultValueOperations();
}
@@ -725,12 +725,12 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
}
@Override
- public ListOperations listOps() {
+ public ListOperations getListOps() {
return new DefaultListOperations();
}
@Override
- public BoundListOperations forList(K key) {
+ public BoundListOperations boundListOps(K key) {
return new DefaultBoundListOperations(key, this);
}
@@ -913,12 +913,12 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
//
@Override
- public BoundSetOperations forSet(K key) {
+ public BoundSetOperations boundSetOps(K key) {
return new DefaultBoundSetOperations(key, this);
}
@Override
- public SetOperations setOps() {
+ public SetOperations getSetOps() {
return new DefaultSetOperations();
}
@@ -1073,12 +1073,12 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
//
@Override
- public BoundZSetOperations forZSet(K key) {
+ public BoundZSetOperations boundZSetOps(K key) {
return new DefaultBoundZSetOperations(key, this);
}
@Override
- public ZSetOperations zSetOps() {
+ public ZSetOperations getZSetOps() {
return new DefaultZSetOperations();
}
@@ -1267,12 +1267,12 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
//
@Override
- public BoundHashOperations forHash(K key) {
+ public BoundHashOperations boundHashOps(K key) {
return new DefaultBoundHashOperations(key, this);
}
@Override
- public HashOperations hashOps() {
+ public HashOperations getHashOps() {
return new DefaultHashOperations();
}
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ZSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ZSetOperations.java
index fe212f78f..9f897e42f 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ZSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ZSetOperations.java
@@ -34,10 +34,6 @@ public interface ZSetOperations {
Set reverseRange(K key, long start, long end);
- void removeRange(K key, long start, long end);
-
- void removeRangeByScore(K key, double min, double max);
-
void unionAndStore(K key, K destKey, Collection keys);
Boolean add(K key, V value, double score);
@@ -50,6 +46,10 @@ public interface ZSetOperations {
Boolean remove(K key, Object o);
+ void removeRange(K key, long start, long end);
+
+ void removeRangeByScore(K key, double min, double max);
+
Long size(K key);
RedisOperations getOperations();
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicInteger.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicInteger.java
index 9bc40c1eb..d2dcb53a7 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicInteger.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicInteger.java
@@ -54,7 +54,7 @@ public class RedisAtomicInteger extends Number implements Serializable, KeyBound
*/
public RedisAtomicInteger(String redisCounter, RedisOperations operations, int initialValue) {
this.key = redisCounter;
- this.operations = operations.valueOps();
+ this.operations = operations.getValueOps();
this.generalOps = operations;
this.operations.set(redisCounter, initialValue);
}
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicLong.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicLong.java
index 05c6b1c4e..210504c0b 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicLong.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/atomic/RedisAtomicLong.java
@@ -54,7 +54,7 @@ public class RedisAtomicLong extends Number implements Serializable, KeyBound operations, long initialValue) {
this.key = redisCounter;
- this.operations = operations.valueOps();
+ this.operations = operations.getValueOps();
this.operations.set(redisCounter, initialValue);
}
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisList.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisList.java
index 7d9072f7a..44a421dc4 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisList.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisList.java
@@ -67,7 +67,7 @@ public class DefaultRedisList extends AbstractRedisCollection implements R
* @param operations
*/
public DefaultRedisList(String key, RedisOperations operations) {
- this(operations.forList(key));
+ this(operations.boundListOps(key));
}
/**
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisMap.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisMap.java
index 649b6d198..e04a53552 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisMap.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisMap.java
@@ -67,7 +67,7 @@ public class DefaultRedisMap implements RedisMap {
* @param operations
*/
public DefaultRedisMap(String key, RedisOperations operations) {
- this.hashOps = operations.forHash(key);
+ this.hashOps = operations.boundHashOps(key);
}
/**
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisSet.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisSet.java
index 79e663800..4f00ce4da 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisSet.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisSet.java
@@ -53,7 +53,7 @@ public class DefaultRedisSet extends AbstractRedisCollection implements Re
*/
public DefaultRedisSet(String key, RedisOperations operations) {
super(key, operations);
- boundSetOps = operations.forSet(key);
+ boundSetOps = operations.boundSetOps(key);
}
/**
@@ -74,7 +74,7 @@ public class DefaultRedisSet extends AbstractRedisCollection implements Re
@Override
public RedisSet diffAndStore(String destKey, Collection extends RedisSet>> sets) {
boundSetOps.diffAndStore(destKey, CollectionUtils.extractKeys(sets));
- return new DefaultRedisSet(boundSetOps.getOperations().forSet(destKey));
+ return new DefaultRedisSet(boundSetOps.getOperations().boundSetOps(destKey));
}
@Override
@@ -85,7 +85,7 @@ public class DefaultRedisSet extends AbstractRedisCollection implements Re
@Override
public RedisSet intersectAndStore(String destKey, Collection extends RedisSet>> sets) {
boundSetOps.intersectAndStore(destKey, CollectionUtils.extractKeys(sets));
- return new DefaultRedisSet(boundSetOps.getOperations().forSet(destKey));
+ return new DefaultRedisSet(boundSetOps.getOperations().boundSetOps(destKey));
}
@Override
@@ -96,7 +96,7 @@ public class DefaultRedisSet extends AbstractRedisCollection implements Re
@Override
public RedisSet unionAndStore(String destKey, Collection extends RedisSet>> sets) {
boundSetOps.unionAndStore(destKey, CollectionUtils.extractKeys(sets));
- return new DefaultRedisSet(boundSetOps.getOperations().forSet(destKey));
+ return new DefaultRedisSet(boundSetOps.getOperations().boundSetOps(destKey));
}
@Override
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisZSet.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisZSet.java
index 243a65131..4a51b59e4 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisZSet.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/support/collections/DefaultRedisZSet.java
@@ -64,7 +64,7 @@ public class DefaultRedisZSet extends AbstractRedisCollection implements R
*/
public DefaultRedisZSet(String key, RedisOperations operations, double defaultScore) {
super(key, operations);
- boundZSetOps = operations.forZSet(key);
+ boundZSetOps = operations.boundZSetOps(key);
this.defaultScore = defaultScore;
}
@@ -93,7 +93,7 @@ public class DefaultRedisZSet extends AbstractRedisCollection implements R
@Override
public RedisZSet intersectAndStore(String destKey, Collection extends RedisZSet>> sets) {
boundZSetOps.intersectAndStore(destKey, CollectionUtils.extractKeys(sets));
- return new DefaultRedisZSet(boundZSetOps.getOperations().forZSet(destKey), getDefaultScore());
+ return new DefaultRedisZSet(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore());
}
@Override
@@ -126,7 +126,7 @@ public class DefaultRedisZSet extends AbstractRedisCollection implements R
@Override
public RedisZSet unionAndStore(String destKey, Collection extends RedisZSet>> sets) {
boundZSetOps.unionAndStore(destKey, CollectionUtils.extractKeys(sets));
- return new DefaultRedisZSet(boundZSetOps.getOperations().forZSet(destKey), getDefaultScore());
+ return new DefaultRedisZSet(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore());
}
@Override
diff --git a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisListTests.java b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisListTests.java
index e8df0bfd2..f09b3c8c4 100644
--- a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisListTests.java
+++ b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisListTests.java
@@ -279,7 +279,7 @@ public abstract class AbstractRedisListTests extends AbstractRedisCollectionT
@Test
public void testCappedCollection() throws Exception {
- RedisList cappedList = new DefaultRedisList(template.forList(collection.getKey() + ":capped"), 1);
+ RedisList cappedList = new DefaultRedisList(template.boundListOps(collection.getKey() + ":capped"), 1);
T first = getT();
cappedList.offer(first);
assertEquals(1, cappedList.size());
diff --git a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisMapTests.java b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisMapTests.java
index 741423d6b..24697f57d 100644
--- a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisMapTests.java
+++ b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisMapTests.java
@@ -164,7 +164,7 @@ public abstract class AbstractRedisMapTests {
@Test
public void testNotEquals() {
RedisOperations ops = map.getOperations();
- RedisStore newInstance = new DefaultRedisMap(ops. forHash(map.getKey() + ":new"));
+ RedisStore newInstance = new DefaultRedisMap(ops. boundHashOps(map.getKey() + ":new"));
assertFalse(map.equals(newInstance));
assertFalse(newInstance.equals(map));
}
diff --git a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisSetTests.java b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisSetTests.java
index c8ca6f707..90fa1b059 100644
--- a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisSetTests.java
+++ b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisSetTests.java
@@ -59,7 +59,7 @@ public abstract class AbstractRedisSetTests extends AbstractRedisCollectionTe
}
private RedisSet createSetFor(String key) {
- return new DefaultRedisSet((BoundSetOperations) set.getOperations().forSet(key));
+ return new DefaultRedisSet((BoundSetOperations) set.getOperations().boundSetOps(key));
}
@Test
diff --git a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisZSetTest.java b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisZSetTest.java
index 1e29571d5..f8223047d 100644
--- a/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisZSetTest.java
+++ b/spring-data-redis/src/test/java/org/springframework/data/keyvalue/redis/support/collections/AbstractRedisZSetTest.java
@@ -183,7 +183,7 @@ public abstract class AbstractRedisZSetTest extends AbstractRedisCollectionTe
}
private RedisZSet createZSetFor(String key) {
- return new DefaultRedisZSet((BoundZSetOperations) zSet.getOperations().forZSet(key));
+ return new DefaultRedisZSet((BoundZSetOperations) zSet.getOperations().boundZSetOps(key));
}
@Test
From 3acb3e9bdebcd1169d59cfee2a774f85ddb5b436 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Wed, 8 Dec 2010 22:10:29 +0200
Subject: [PATCH 03/12] + added javadocs to dedicated ops
---
.../keyvalue/redis/core/RedisOperations.java | 82 ++++++++++++++++---
1 file changed, 72 insertions(+), 10 deletions(-)
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisOperations.java
index 7dcbb3ab2..969aa9d28 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/RedisOperations.java
@@ -82,23 +82,85 @@ public interface RedisOperations {
Long sort(K key, SortParameters params, K destination);
- ValueOperations valueOps();
+ // operation types
+ /**
+ * Returns the operations performed on simple values (or Strings in Redis terminology).
+ *
+ * @return value operations
+ */
+ ValueOperations getValueOps();
- BoundValueOperations forValue(K key);
+ /**
+ * Returns the operations performed on simple values (or Strings in Redis terminology)
+ * bound to the given key.
+ *
+ * @param key Redis key
+ * @return value operations bound to the given key
+ */
+ BoundValueOperations boundValueOps(K key);
- ListOperations listOps();
+ /**
+ * Returns the operations performed on list values.
+ *
+ * @return list operations
+ */
+ ListOperations getListOps();
- BoundListOperations forList(K key);
+ /**
+ * Returns the operations performed on list values bound to the given key.
+ *
+ * @param key Redis key
+ * @return list operations bound to the given key
+ */
+ BoundListOperations boundListOps(K key);
- SetOperations setOps();
+ /**
+ * Returns the operations performed on set values.
+ *
+ * @return set operations
+ */
+ SetOperations getSetOps();
- BoundSetOperations forSet(K key);
+ /**
+ * Returns the operations performed on set values bound to the given key.
+ *
+ * @param key Redis key
+ * @return set operations bound to the given key
+ */
+ BoundSetOperations boundSetOps(K key);
- ZSetOperations zSetOps();
+ /**
+ * Returns the operations performed on zset values (also known as sorted sets).
+ *
+ * @return zset operations
+ */
+ ZSetOperations getZSetOps();
- BoundZSetOperations forZSet(K key);
+ /**
+ * Returns the operations performed on zset values (also known as sorted sets)
+ * bound to the given key.
+ *
+ * @param key Redis key
+ * @return zset operations bound to the given key.
+ */
+ BoundZSetOperations boundZSetOps(K key);
- HashOperations hashOps();
+ /**
+ * Returns the operations performed on hash values.
+ *
+ * @param hash key (or field) type
+ * @param hash value type
+ * @return hash operations
+ */
+ HashOperations getHashOps();
- BoundHashOperations forHash(K key);
+ /**
+ * Returns the operations performed on hash values bound to the given key.
+ *
+ * @param hash key (or field) type
+ * @param hash value type
+ * @param key Redis key
+ * @return hash operations bound to the given key.
+ */
+ BoundHashOperations boundHashOps(K key);
}
\ No newline at end of file
From 2a397015d2ee28acd3bfba536f9e644bc88ff107 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Wed, 8 Dec 2010 22:28:08 +0200
Subject: [PATCH 04/12] + add missing getOperation to bound ops interfaces
---
.../redis/core/BoundKeyOperations.java | 47 -------------------
.../redis/core/BoundValueOperations.java | 2 +
.../core/DefaultBoundValueOperations.java | 5 ++
.../keyvalue/redis/core/ListOperations.java | 2 +
.../keyvalue/redis/core/RedisTemplate.java | 19 ++++++--
.../keyvalue/redis/core/SetOperations.java | 3 +-
.../keyvalue/redis/core/ValueOperations.java | 2 +
7 files changed, 27 insertions(+), 53 deletions(-)
delete mode 100644 spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundKeyOperations.java
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundKeyOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundKeyOperations.java
deleted file mode 100644
index 69de46eb9..000000000
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundKeyOperations.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2010 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.keyvalue.redis.core;
-
-import java.util.Date;
-import java.util.concurrent.TimeUnit;
-
-import org.springframework.data.keyvalue.redis.connection.DataType;
-
-/**
- * Key operations bound to a certain value.
- *
- * @author Costin Leau
- */
-public interface BoundKeyOperations extends KeyBound {
-
- Boolean exists();
-
- void delete();
-
- DataType type();
-
- void rename(K newKey);
-
- Boolean renameIfAbsent(K newKey);
-
- Boolean expire(long timeout, TimeUnit unit);
-
- Boolean expireAt(Date date);
-
- Long getExpire();
-
- void persist();
-}
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 4e8eb4f6d..e751e3d91 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
@@ -24,6 +24,8 @@ import java.util.concurrent.TimeUnit;
*/
public interface BoundValueOperations extends KeyBound {
+ RedisOperations getOperations();
+
void set(V value);
void set(V value, long timeout, TimeUnit unit);
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 3e459ff78..67fb2eba1 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
@@ -64,4 +64,9 @@ class DefaultBoundValueOperations extends DefaultKeyBound implements Bo
public Boolean setIfAbsent(V value) {
return ops.setIfAbsent(getKey(), value);
}
+
+ @Override
+ public RedisOperations getOperations() {
+ return ops.getOperations();
+ }
}
\ No newline at end of file
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java
index 8a7f99707..6f1ebf3c5 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java
@@ -49,5 +49,7 @@ public interface ListOperations {
V rightPop(K key, long timeout, TimeUnit unit);
+ void rightPopAndLeftPush(K sourceKey, K destinationKey);
+
RedisOperations 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 acc89699d..59d546f1c 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
@@ -72,6 +72,12 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
private RedisSerializer hashKeySerializer = new SimpleRedisSerializer();
private RedisSerializer hashValueSerializer = new SimpleRedisSerializer();
+ // cache singleton objects (where possible)
+ private final ValueOperations valueOps = new DefaultValueOperations();
+ private final ListOperations listOps = new DefaultListOperations();
+ private final SetOperations setOps = new DefaultSetOperations();
+ private final ZSetOperations zSetOps = new DefaultZSetOperations();
+
/**
* Constructs a new RedisTemplate instance.
*
@@ -567,7 +573,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
@Override
public ValueOperations getValueOps() {
- return new DefaultValueOperations();
+ return valueOps;
}
private class DefaultValueOperations implements ValueOperations {
@@ -722,11 +728,16 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
}
}, true);
}
+
+ @Override
+ public RedisOperations getOperations() {
+ return RedisTemplate.this;
+ }
}
@Override
public ListOperations getListOps() {
- return new DefaultListOperations();
+ return listOps;
}
@Override
@@ -919,7 +930,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
@Override
public SetOperations getSetOps() {
- return new DefaultSetOperations();
+ return setOps;
}
private class DefaultSetOperations implements SetOperations {
@@ -1079,7 +1090,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
@Override
public ZSetOperations getZSetOps() {
- return new DefaultZSetOperations();
+ return zSetOps;
}
private class DefaultZSetOperations implements ZSetOperations {
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
index 08c5a806c..7eb5817c8 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
@@ -30,8 +30,6 @@ public interface SetOperations {
void diffAndStore(K key, K destKey, Collection keys);
- RedisOperations getOperations();
-
Set intersect(K key, Collection keys);
void intersectAndStore(K key, K destKey, Collection keys);
@@ -50,4 +48,5 @@ public interface SetOperations {
Long size(K key);
+ RedisOperations getOperations();
}
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 2a4a41395..a56ed96ce 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
@@ -43,4 +43,6 @@ public interface ValueOperations {
Collection multiGet(Collection keys);
Long increment(K key, long delta);
+
+ RedisOperations getOperations();
}
From 69fb3a996ba796e49b0ab496a1f9a438eae2b417 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Wed, 8 Dec 2010 22:34:25 +0200
Subject: [PATCH 05/12] add rightPopLeftPush to list operations
---
.../data/keyvalue/redis/core/ListOperations.java | 2 +-
.../data/keyvalue/redis/core/RedisTemplate.java | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java
index 6f1ebf3c5..ed423f454 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/ListOperations.java
@@ -49,7 +49,7 @@ public interface ListOperations {
V rightPop(K key, long timeout, TimeUnit unit);
- void rightPopAndLeftPush(K sourceKey, K destinationKey);
+ V rightPopAndLeftPush(K sourceKey, K destinationKey);
RedisOperations 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 59d546f1c..ff6078d17 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
@@ -890,6 +890,18 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
}, true);
}
+ @Override
+ public V rightPopAndLeftPush(K sourceKey, K destinationKey) {
+ final byte[] rawDestKey = rawKey(destinationKey);
+
+ return execute(new ValueDeserializingRedisCallback(sourceKey) {
+ @Override
+ protected byte[] inRedis(byte[] rawSourceKey, RedisConnection connection) {
+ return connection.rPopLPush(rawSourceKey, rawDestKey);
+ }
+ }, true);
+ }
+
@Override
public void set(K key, final long index, V value) {
final byte[] rawValue = rawValue(value);
From 48d31da0fddd7c702ded872d2ba0fe7163b90994 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Wed, 8 Dec 2010 22:39:53 +0200
Subject: [PATCH 06/12] + add pop to set operations
---
.../data/keyvalue/redis/core/BoundSetOperations.java | 2 ++
.../keyvalue/redis/core/DefaultBoundSetOperations.java | 5 +++++
.../data/keyvalue/redis/core/RedisTemplate.java | 10 ++++++++++
.../data/keyvalue/redis/core/SetOperations.java | 2 ++
4 files changed, 19 insertions(+)
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java
index e9274e453..944a62ced 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java
@@ -48,5 +48,7 @@ public interface BoundSetOperations extends KeyBound {
Boolean remove(Object o);
+ V pop();
+
Long size();
}
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
index 8050abc2b..4db125290 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
@@ -85,6 +85,11 @@ class DefaultBoundSetOperations extends DefaultKeyBound implements Boun
return ops.remove(getKey(), o);
}
+ @Override
+ public V pop() {
+ return ops.pop(getKey());
+ }
+
@Override
public Long size() {
return ops.size(getKey());
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 ff6078d17..8ec6bbce1 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
@@ -1053,6 +1053,16 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
}, true);
}
+ @Override
+ public V pop(K key) {
+ return execute(new ValueDeserializingRedisCallback(key) {
+ @Override
+ protected byte[] inRedis(byte[] rawKey, RedisConnection connection) {
+ return connection.sPop(rawKey);
+ }
+ }, true);
+ }
+
@Override
public Long size(K key) {
final byte[] rawKey = rawKey(key);
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
index 7eb5817c8..15d233268 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
@@ -46,6 +46,8 @@ public interface SetOperations {
Boolean remove(K key, Object o);
+ V pop(K key);
+
Long size(K key);
RedisOperations getOperations();
From bd9c8aaa25f707588215f189a00fe0e9540bf141 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Wed, 8 Dec 2010 22:46:45 +0200
Subject: [PATCH 07/12] + add move and random member to set operations
---
.../redis/core/BoundSetOperations.java | 4 +++
.../redis/core/DefaultBoundSetOperations.java | 10 ++++++++
.../keyvalue/redis/core/RedisTemplate.java | 25 +++++++++++++++++++
.../keyvalue/redis/core/SetOperations.java | 4 +++
4 files changed, 43 insertions(+)
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java
index 944a62ced..35c3773a0 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/BoundSetOperations.java
@@ -46,6 +46,10 @@ public interface BoundSetOperations extends KeyBound {
Set members();
+ Boolean move(K destKey, V value);
+
+ V randomMember();
+
Boolean remove(Object o);
V pop();
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
index 4db125290..2caed3155 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
@@ -80,6 +80,16 @@ class DefaultBoundSetOperations extends DefaultKeyBound implements Boun
return ops.members(getKey());
}
+ @Override
+ public Boolean move(K destKey, V value) {
+ return ops.move(getKey(), destKey, value);
+ }
+
+ @Override
+ public V randomMember() {
+ return ops.randomMember(getKey());
+ }
+
@Override
public Boolean remove(Object o) {
return ops.remove(getKey(), o);
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 8ec6bbce1..59387c1f2 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
@@ -1041,6 +1041,31 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
return deserializeValues(rawValues, Set.class);
}
+ @Override
+ public Boolean move(K key, K destKey, V value) {
+ final byte[] rawKey = rawKey(key);
+ final byte[] rawDestKey = rawKey(destKey);
+ final byte[] rawValue = rawValue(value);
+
+ return execute(new RedisCallback() {
+ @Override
+ public Boolean doInRedis(RedisConnection connection) {
+ return connection.sMove(rawKey, rawDestKey, rawValue);
+ }
+ }, true);
+ }
+
+ @Override
+ public V randomMember(K key) {
+
+ return execute(new ValueDeserializingRedisCallback(key) {
+ @Override
+ protected byte[] inRedis(byte[] rawKey, RedisConnection connection) {
+ return connection.randomKey();
+ }
+ }, true);
+ }
+
@Override
public Boolean remove(K key, Object o) {
final byte[] rawKey = rawKey(key);
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
index 15d233268..a16e44407 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/SetOperations.java
@@ -44,6 +44,10 @@ public interface SetOperations {
Set members(K key);
+ Boolean move(K key, K destKey, V value);
+
+ V randomMember(K key);
+
Boolean remove(K key, Object o);
V pop(K key);
From 2dc11f550118fc6741d217da090e0597e1d8deb0 Mon Sep 17 00:00:00 2001
From: Costin Leau
Date: Wed, 8 Dec 2010 22:47:21 +0200
Subject: [PATCH 08/12] + rename diff to differentiate
---
.../data/keyvalue/redis/core/DefaultBoundSetOperations.java | 4 ++--
.../data/keyvalue/redis/core/RedisTemplate.java | 4 ++--
.../data/keyvalue/redis/core/SetOperations.java | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
index 2caed3155..5d0ca9a23 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/core/DefaultBoundSetOperations.java
@@ -47,12 +47,12 @@ class DefaultBoundSetOperations extends DefaultKeyBound implements Boun
@Override
public Set diff(Collection keys) {
- return ops.diff(getKey(), keys);
+ return ops.difference(getKey(), keys);
}
@Override
public void diffAndStore(K destKey, Collection keys) {
- ops.diffAndStore(getKey(), destKey, keys);
+ ops.differenceAndStore(getKey(), destKey, keys);
}
@Override
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 59387c1f2..9c5bdbf50 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
@@ -960,7 +960,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
}
@Override
- public Set diff(final K key, final Collection keys) {
+ public Set difference(final K key, final Collection keys) {
final byte[][] rawKeys = rawKeys(key, keys);
Set rawValues = execute(new RedisCallback>() {
@Override
@@ -973,7 +973,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation
}
@Override
- public void diffAndStore(final K key, K destKey, final Collection keys) {
+ public void differenceAndStore(final K key, K destKey, final Collection keys) {
final byte[][] rawKeys = rawKeys(key, keys);
final byte[] rawDestKey = rawKey(destKey);
execute(new RedisCallback