+ add discard and unwatch operations

This commit is contained in:
Costin Leau
2010-12-08 23:02:28 +02:00
parent 48b9df3a05
commit f18fffa4ee
2 changed files with 56 additions and 23 deletions

View File

@@ -74,8 +74,12 @@ public interface RedisOperations<K, V> {
void watch(Collection<K> keys);
void unwatch();
void multi();
void discard();
Object exec();
List<V> sort(K key, SortParameters params);

View File

@@ -382,6 +382,7 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
// RedisOperations
//
@Override
public Object exec() {
return execute(new RedisCallback<Object>() {
@@ -566,6 +567,57 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
}, true);
}
@Override
public void multi() {
execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
connection.multi();
return null;
}
}, true);
}
@Override
public void discard() {
execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
connection.discard();
return null;
}
}, true);
}
@Override
public void watch(Collection<K> keys) {
final byte[][] rawKeys = rawKeys(keys);
execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) {
connection.watch(rawKeys);
return null;
}
}, true);
}
@Override
public void unwatch() {
execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
connection.unwatch();
return null;
}
}, true);
}
//
// Value Ops
//
@Override
public BoundValueOperations<K, V> boundValueOps(K key) {
return new DefaultBoundValueOperations<K, V>(key, this);
@@ -746,29 +798,7 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
}
@Override
public void multi() {
execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
connection.multi();
return null;
}
}, true);
}
@Override
public void watch(Collection<K> keys) {
final byte[][] rawKeys = rawKeys(keys);
execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) {
connection.watch(rawKeys);
return null;
}
}, true);
}
//
// List operations
@@ -809,7 +839,6 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
}
@Override
public Long leftPush(K key, V value) {
final byte[] rawKey = rawKey(key);