+ add move and random member to set operations
This commit is contained in:
@@ -46,6 +46,10 @@ public interface BoundSetOperations<K, V> extends KeyBound<K> {
|
||||
|
||||
Set<V> members();
|
||||
|
||||
Boolean move(K destKey, V value);
|
||||
|
||||
V randomMember();
|
||||
|
||||
Boolean remove(Object o);
|
||||
|
||||
V pop();
|
||||
|
||||
@@ -80,6 +80,16 @@ class DefaultBoundSetOperations<K, V> extends DefaultKeyBound<K> 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);
|
||||
|
||||
@@ -1041,6 +1041,31 @@ public class RedisTemplate<K, V> 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<Boolean>() {
|
||||
@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);
|
||||
|
||||
@@ -44,6 +44,10 @@ public interface SetOperations<K, V> {
|
||||
|
||||
Set<V> 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);
|
||||
|
||||
Reference in New Issue
Block a user