+ add more operations on ZSet contract
This commit is contained in:
@@ -34,6 +34,8 @@ public interface BoundZSetOperations<K, V> extends KeyBound<K> {
|
||||
|
||||
Set<V> rangeByScore(double min, double max);
|
||||
|
||||
Set<V> reverseRange(int start, int end);
|
||||
|
||||
void removeRange(int start, int end);
|
||||
|
||||
void removeRangeByScore(double min, double max);
|
||||
@@ -44,9 +46,11 @@ public interface BoundZSetOperations<K, V> extends KeyBound<K> {
|
||||
|
||||
Integer rank(Object o);
|
||||
|
||||
Integer reverseRank(Object o);
|
||||
|
||||
boolean remove(Object o);
|
||||
|
||||
int size();
|
||||
|
||||
Set<V> reverseRange(int start, int end);
|
||||
Double score(Object o);
|
||||
}
|
||||
|
||||
@@ -62,6 +62,16 @@ class DefaultBoundZSetOperations<K, V> extends DefaultKeyBound<K> implements Bou
|
||||
return ops.rank(getKey(), o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer reverseRank(Object o) {
|
||||
return ops.reverseRank(getKey(), o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double score(Object o) {
|
||||
return ops.score(getKey(), o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean remove(Object o) {
|
||||
return ops.remove(getKey(), o);
|
||||
|
||||
@@ -743,6 +743,19 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
|
||||
}, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer reverseRank(K key, Object o) {
|
||||
final byte[] rawKey = rawKey(key);
|
||||
final byte[] rawValue = rawValue(o);
|
||||
|
||||
return execute(new RedisCallback<Integer>() {
|
||||
@Override
|
||||
public Integer doInRedis(RedisConnection connection) {
|
||||
return connection.zRevRank(rawKey, rawValue);
|
||||
}
|
||||
}, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean remove(K key, Object o) {
|
||||
final byte[] rawKey = rawKey(key);
|
||||
@@ -794,6 +807,19 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
|
||||
return values(rawValues, Set.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double score(K key, Object o) {
|
||||
final byte[] rawKey = rawKey(key);
|
||||
final byte[] rawValue = rawValue(o);
|
||||
|
||||
return execute(new RedisCallback<Double>() {
|
||||
@Override
|
||||
public Double doInRedis(RedisConnection connection) {
|
||||
return connection.zScore(rawKey, rawValue);
|
||||
}
|
||||
}, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size(K key) {
|
||||
final byte[] rawKey = rawKey(key);
|
||||
|
||||
@@ -31,6 +31,8 @@ public interface ZSetOperations<K, V> {
|
||||
|
||||
Set<V> rangeByScore(K key, double min, double max);
|
||||
|
||||
Set<V> reverseRange(K key, int start, int end);
|
||||
|
||||
void removeRange(K key, int start, int end);
|
||||
|
||||
void removeRangeByScore(K key, double min, double max);
|
||||
@@ -41,11 +43,13 @@ public interface ZSetOperations<K, V> {
|
||||
|
||||
Integer rank(K key, Object o);
|
||||
|
||||
Integer reverseRank(K key, Object o);
|
||||
|
||||
Double score(K key, Object o);
|
||||
|
||||
boolean remove(K key, Object o);
|
||||
|
||||
int size(K key);
|
||||
|
||||
Set<V> reverseRange(K key, int start, int end);
|
||||
|
||||
RedisOperations<K, V> getOperations();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user