+ add incrementScore to zset operations

This commit is contained in:
Costin Leau
2010-12-08 22:52:45 +02:00
parent 2dc11f5501
commit b7dcfb67a1
4 changed files with 24 additions and 2 deletions

View File

@@ -45,6 +45,8 @@ public interface BoundZSetOperations<K, V> extends KeyBound<K> {
Boolean add(V value, double score);
Double incrementScore(V value, double delta);
Long rank(Object o);
Long reverseRank(Object o);

View File

@@ -44,6 +44,11 @@ class DefaultBoundZSetOperations<K, V> extends DefaultKeyBound<K> implements Bou
return ops.add(getKey(), value, score);
}
@Override
public Double incrementScore(V value, double delta) {
return ops.incrementScore(getKey(), value, delta);
}
@Override
public RedisOperations<K, V> getOperations() {
return ops.getOperations();

View File

@@ -1155,6 +1155,19 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
}, true);
}
@Override
public Double incrementScore(K key, V value, final double delta) {
final byte[] rawKey = rawKey(key);
final byte[] rawValue = rawValue(value);
return execute(new RedisCallback<Double>() {
@Override
public Double doInRedis(RedisConnection connection) {
return connection.zIncrBy(rawKey, delta, rawValue);
}
}, true);
}
@Override
public RedisOperations<K, V> getOperations() {
return RedisTemplate.this;

View File

@@ -28,16 +28,18 @@ public interface ZSetOperations<K, V> {
void intersectAndStore(K key, K destKey, Collection<K> keys);
void unionAndStore(K key, K destKey, Collection<K> keys);
Set<V> range(K key, long start, long end);
Set<V> rangeByScore(K key, double min, double max);
Set<V> reverseRange(K key, long start, long end);
void unionAndStore(K key, K destKey, Collection<K> keys);
Boolean add(K key, V value, double score);
Double incrementScore(K key, V value, double delta);
Long rank(K key, Object o);
Long reverseRank(K key, Object o);