Binary U test on SortedSets ...

This commit is contained in:
Yaourt
2010-11-05 18:16:16 +01:00
parent 5a87ae465e
commit 0beeddce5d
4 changed files with 397 additions and 16 deletions

View File

@@ -1574,14 +1574,14 @@ public class BinaryJedis implements BinaryJedisCommands {
public Set<Tuple> zrangeWithScores(final byte[] key, final int start, final int end) { public Set<Tuple> zrangeWithScores(final byte[] key, final int start, final int end) {
checkIsInMulti(); checkIsInMulti();
client.zrangeWithScores(key, start, end); client.zrangeWithScores(key, start, end);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getBinaryTupledSet();
return set; return set;
} }
public Set<Tuple> zrevrangeWithScores(final byte[] key, final int start, final int end) { public Set<Tuple> zrevrangeWithScores(final byte[] key, final int start, final int end) {
checkIsInMulti(); checkIsInMulti();
client.zrevrangeWithScores(key, start, end); client.zrevrangeWithScores(key, start, end);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getBinaryTupledSet();
return set; return set;
} }
@@ -2225,7 +2225,7 @@ public class BinaryJedis implements BinaryJedisCommands {
public Set<Tuple> zrangeByScoreWithScores(final byte[] key, final double min, final double max) { public Set<Tuple> zrangeByScoreWithScores(final byte[] key, final double min, final double max) {
checkIsInMulti(); checkIsInMulti();
client.zrangeByScoreWithScores(key, min, max); client.zrangeByScoreWithScores(key, min, max);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getBinaryTupledSet();
return set; return set;
} }
@@ -2289,19 +2289,22 @@ public class BinaryJedis implements BinaryJedisCommands {
final double max, final int offset, final int count) { final double max, final int offset, final int count) {
checkIsInMulti(); checkIsInMulti();
client.zrangeByScoreWithScores(key, min, max, offset, count); client.zrangeByScoreWithScores(key, min, max, offset, count);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getBinaryTupledSet();
return set; return set;
} }
private Set<Tuple> getTupledSet() { private Set<Tuple> getBinaryTupledSet() {
checkIsInMulti(); checkIsInMulti();
List<String> membersWithScores = client.getMultiBulkReply(); List<byte[]> membersWithScores = client.getBinaryMultiBulkReply();
Set<Tuple> set = new LinkedHashSet<Tuple>(); Set<Tuple> set = new LinkedHashSet<Tuple>();
Iterator<String> iterator = membersWithScores.iterator(); Iterator<byte[]> iterator = membersWithScores.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
set set.add(
.add(new Tuple(iterator.next(), Double.valueOf(iterator new Tuple(
.next()))); iterator.next(),
Double.valueOf(new String(iterator.next(), Protocol.UTF8))
)
);
} }
return set; return set;
} }

View File

@@ -1,14 +1,21 @@
package redis.clients.jedis; package redis.clients.jedis;
import java.util.Arrays;
public class Tuple { public class Tuple {
private String element; private byte[] element;
private Double score; private Double score;
@Override @Override
public int hashCode() { public int hashCode() {
final int prime = 31; final int prime = 31;
int result = 1; int result = 1;
result = prime * result + ((element == null) ? 0 : element.hashCode()); result = prime * result;
if (null != element) {
for(final byte b : element) {
result = prime * result + b;
}
}
long temp; long temp;
temp = Double.doubleToLongBits(score); temp = Double.doubleToLongBits(score);
result = prime * result + (int) (temp ^ (temp >>> 32)); result = prime * result + (int) (temp ^ (temp >>> 32));
@@ -27,7 +34,7 @@ public class Tuple {
if (element == null) { if (element == null) {
if (other.element != null) if (other.element != null)
return false; return false;
} else if (!element.equals(other.element)) } else if (!Arrays.equals(element, other.element))
return false; return false;
if (Double.doubleToLongBits(score) != Double if (Double.doubleToLongBits(score) != Double
.doubleToLongBits(other.score)) .doubleToLongBits(other.score))
@@ -37,15 +44,33 @@ public class Tuple {
public Tuple(String element, Double score) { public Tuple(String element, Double score) {
super(); super();
this.element = element; this.element = element.getBytes(Protocol.UTF8);
this.score = score; this.score = score;
} }
public Tuple(byte[] element, Double score) {
super();
this.element = element;
this.score = score;
}
public String getElement() { public String getElement() {
return element; if(null != element) {
return new String(element, Protocol.UTF8);
} else {
return null;
}
}
public byte[] getBinaryElement() {
return element;
} }
public double getScore() { public double getScore() {
return score; return score;
} }
public String toString() {
return '['+Arrays.toString(element)+','+score+']';
}
} }

View File

@@ -145,7 +145,7 @@ public class SetCommandsTest extends JedisCommandTestBase {
assertEquals(expectedSrc, jedis.smembers("foo")); assertEquals(expectedSrc, jedis.smembers("foo"));
assertEquals(expectedDst, jedis.smembers("bar")); assertEquals(expectedDst, jedis.smembers("bar"));
status = jedis.smove("foo", "bar", "a"); final byte[] bD = {0x0D}; status = jedis.smove("foo", "bar", "a");
assertEquals(status, 0); assertEquals(status, 0);

View File

@@ -5,10 +5,19 @@ import java.util.Set;
import org.junit.Test; import org.junit.Test;
import redis.clients.jedis.Protocol;
import redis.clients.jedis.Tuple; import redis.clients.jedis.Tuple;
import redis.clients.jedis.ZParams; import redis.clients.jedis.ZParams;
import redis.clients.jedis.tests.JedisTest;
public class SortedSetCommandsTest extends JedisCommandTestBase { public class SortedSetCommandsTest extends JedisCommandTestBase {
final byte[] bfoo = {0x01, 0x02, 0x03, 0x04};
final byte[] bbar = {0x05, 0x06, 0x07, 0x08};
final byte[] bcar = {0x09, 0x0A, 0x0B, 0x0C};
final byte[] ba = {0x0A};
final byte[] bb = {0x0B};
final byte[] bc = {0x0C};
@Test @Test
public void zadd() { public void zadd() {
int status = jedis.zadd("foo", 1d, "a"); int status = jedis.zadd("foo", 1d, "a");
@@ -22,6 +31,20 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
status = jedis.zadd("foo", 2d, "a"); status = jedis.zadd("foo", 2d, "a");
assertEquals(0, status); assertEquals(0, status);
//Binary
int bstatus = jedis.zadd(bfoo, 1d, ba);
assertEquals(1, bstatus);
bstatus = jedis.zadd(bfoo, 10d, bb);
assertEquals(1, bstatus);
bstatus = jedis.zadd(bfoo, 0.1d, bc);
assertEquals(1, bstatus);
bstatus = jedis.zadd(bfoo, 2d, ba);
assertEquals(0, bstatus);
} }
@Test @Test
@@ -41,6 +64,24 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add("b"); expected.add("b");
range = jedis.zrange("foo", 0, 100); range = jedis.zrange("foo", 0, 100);
assertEquals(expected, range); assertEquals(expected, range);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
bexpected.add(bc);
bexpected.add(ba);
Set<byte[]> brange = jedis.zrange(bfoo, 0, 1);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
bexpected.add(bb);
brange = jedis.zrange(bfoo, 0, 100);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
} }
@Test @Test
@@ -60,6 +101,24 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add("c"); expected.add("c");
range = jedis.zrevrange("foo", 0, 100); range = jedis.zrevrange("foo", 0, 100);
assertEquals(expected, range); assertEquals(expected, range);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
bexpected.add(bb);
bexpected.add(ba);
Set<byte[]> brange = jedis.zrevrange(bfoo, 0, 1);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
bexpected.add(bc);
brange = jedis.zrevrange(bfoo, 0, 100);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
} }
@Test @Test
@@ -78,6 +137,23 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
status = jedis.zrem("foo", "bar"); status = jedis.zrem("foo", "bar");
assertEquals(0, status); assertEquals(0, status);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 2d, bb);
int bstatus = jedis.zrem(bfoo, ba);
Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
bexpected.add(bb);
assertEquals(1, bstatus);
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrange(bfoo, 0, 100)));
bstatus = jedis.zrem(bfoo, bbar);
assertEquals(0, bstatus);
} }
@Test @Test
@@ -93,6 +169,20 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
assertEquals(3d, score, 0); assertEquals(3d, score, 0);
assertEquals(expected, jedis.zrange("foo", 0, 100)); assertEquals(expected, jedis.zrange("foo", 0, 100));
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 2d, bb);
double bscore = jedis.zincrby(bfoo, 2d, ba);
Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
bexpected.add(ba);
bexpected.add(bb);
assertEquals(3d, bscore, 0);
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrange(bfoo, 0, 100)));
} }
@Test @Test
@@ -108,6 +198,20 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
rank = jedis.zrank("car", "b"); rank = jedis.zrank("car", "b");
assertNull(rank); assertNull(rank);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 2d, bb);
Integer brank = jedis.zrank(bfoo, ba);
assertEquals(0, brank.intValue());
brank = jedis.zrank(bfoo, bb);
assertEquals(1, brank.intValue());
brank = jedis.zrank(bcar, bb);
assertNull(brank);
} }
@Test @Test
@@ -120,6 +224,17 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
rank = jedis.zrevrank("foo", "b"); rank = jedis.zrevrank("foo", "b");
assertEquals(0, rank); assertEquals(0, rank);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 2d, bb);
int brank = jedis.zrevrank(bfoo, ba);
assertEquals(1, brank);
brank = jedis.zrevrank(bfoo, bb);
assertEquals(0, brank);
} }
@Test @Test
@@ -139,6 +254,24 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add(new Tuple("b", 10d)); expected.add(new Tuple("b", 10d));
range = jedis.zrangeWithScores("foo", 0, 100); range = jedis.zrangeWithScores("foo", 0, 100);
assertEquals(expected, range); assertEquals(expected, range);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
Set<Tuple> bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(bc, 0.1d));
bexpected.add(new Tuple(ba, 2d));
Set<Tuple> brange = jedis.zrangeWithScores(bfoo, 0, 1);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
bexpected.add(new Tuple(bb, 10d));
brange = jedis.zrangeWithScores(bfoo, 0, 100);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
} }
@Test @Test
@@ -158,6 +291,24 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add(new Tuple("c", 0.1d)); expected.add(new Tuple("c", 0.1d));
range = jedis.zrevrangeWithScores("foo", 0, 100); range = jedis.zrevrangeWithScores("foo", 0, 100);
assertEquals(expected, range); assertEquals(expected, range);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
Set<Tuple> bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(bb, 10d));
bexpected.add(new Tuple(ba, 2d));
Set<Tuple> brange = jedis.zrevrangeWithScores(bfoo, 0, 1);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
bexpected.add(new Tuple(bc, 0.1d));
brange = jedis.zrevrangeWithScores(bfoo, 0, 100);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
} }
@Test @Test
@@ -169,6 +320,16 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
int size = jedis.zcard("foo"); int size = jedis.zcard("foo");
assertEquals(3, size); assertEquals(3, size);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
int bsize = jedis.zcard(bfoo);
assertEquals(3, bsize);
} }
@Test @Test
@@ -186,6 +347,22 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
score = jedis.zscore("foo", "s"); score = jedis.zscore("foo", "s");
assertNull(score); assertNull(score);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
Double bscore = jedis.zscore(bfoo, bb);
assertEquals((Double)10d, bscore);
bscore = jedis.zscore(bfoo, bc);
assertEquals((Double)0.1d, bscore);
bscore = jedis.zscore(bfoo, "s".getBytes(Protocol.UTF8));
assertNull(bscore);
} }
@Test @Test
@@ -198,6 +375,17 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
int result = jedis.zcount("foo", 0.01d, 2.1d); int result = jedis.zcount("foo", 0.01d, 2.1d);
assertEquals(2, result); assertEquals(2, result);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
int bresult = jedis.zcount(bfoo, 0.01d, 2.1d);
assertEquals(2, bresult);
} }
@Test @Test
@@ -230,6 +418,37 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add("a"); expected.add("a");
assertEquals(expected, range); assertEquals(expected, range);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d,bc);
jedis.zadd(bfoo, 2d, ba);
Set<byte[]> brange = jedis.zrangeByScore(bfoo, 0d, 2d);
Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
bexpected.add(bc);
bexpected.add(ba);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
brange = jedis.zrangeByScore(bfoo, 0d, 2d, 0, 1);
bexpected = new LinkedHashSet<byte[]>();
bexpected.add(bc);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
brange = jedis.zrangeByScore(bfoo, 0d, 2d, 1, 1);
Set<byte[]> brange2 = jedis.zrangeByScore(bfoo, "-inf".getBytes(Protocol.UTF8), "(2".getBytes(Protocol.UTF8));
assertTrue(JedisTest.isListAreEquals(bexpected, brange2));
bexpected = new LinkedHashSet<byte[]>();
bexpected.add(ba);
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
} }
@Test @Test
@@ -260,6 +479,36 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add(new Tuple("a", 2d)); expected.add(new Tuple("a", 2d));
assertEquals(expected, range); assertEquals(expected, range);
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
Set<Tuple> brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d);
Set<Tuple> bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(bc, 0.1d));
bexpected.add(new Tuple(ba, 2d));
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d, 0, 1);
bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(bc, 0.1d));
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d, 1, 1);
bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(ba, 2d));
assertTrue(JedisTest.isListAreEquals(bexpected, brange));
} }
@Test @Test
@@ -278,6 +527,23 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add("b"); expected.add("b");
assertEquals(expected, jedis.zrange("foo", 0, 100)); assertEquals(expected, jedis.zrange("foo", 0, 100));
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d, bc);
jedis.zadd(bfoo, 2d, ba);
int bresult = jedis.zremrangeByRank(bfoo, 0, 0);
assertEquals(1, bresult);
Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
bexpected.add(ba);
bexpected.add(bb);
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrange(bfoo, 0, 100)));
} }
@Test @Test
@@ -295,6 +561,22 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add("b"); expected.add("b");
assertEquals(expected, jedis.zrange("foo", 0, 100)); assertEquals(expected, jedis.zrange("foo", 0, 100));
//Binary
jedis.zadd(bfoo, 1d, ba);
jedis.zadd(bfoo, 10d, bb);
jedis.zadd(bfoo, 0.1d,bc);
jedis.zadd(bfoo, 2d, ba);
int bresult = jedis.zremrangeByScore(bfoo, 0, 2);
assertEquals(2, bresult);
Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
bexpected.add(bb);
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrange(bfoo, 0, 100)));
} }
@Test @Test
@@ -313,6 +595,23 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add(new Tuple("a", new Double(3))); expected.add(new Tuple("a", new Double(3)));
assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100));
//Binary
jedis.zadd(bfoo, 1, ba);
jedis.zadd(bfoo, 2, bb);
jedis.zadd(bbar, 2, ba);
jedis.zadd(bbar, 2, bb);
int bresult = jedis.zunionstore("dst".getBytes(Protocol.UTF8), bfoo, bbar);
assertEquals(2, bresult);
Set<Tuple> bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(bb, new Double(4)));
bexpected.add(new Tuple(ba, new Double(3)));
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrangeWithScores("dst".getBytes(Protocol.UTF8), 0, 100)));
} }
@Test @Test
@@ -334,6 +633,26 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add(new Tuple("a", new Double(6))); expected.add(new Tuple("a", new Double(6)));
assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100));
//Binary
jedis.zadd(bfoo, 1, ba);
jedis.zadd(bfoo, 2, bb);
jedis.zadd(bbar, 2, ba);
jedis.zadd(bbar, 2, bb);
ZParams bparams = new ZParams();
bparams.weights(2, 2);
bparams.aggregate(ZParams.Aggregate.SUM);
int bresult = jedis.zunionstore("dst".getBytes(Protocol.UTF8), bparams, bfoo, bbar);
assertEquals(2, bresult);
Set<Tuple> bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(bb, new Double(8)));
bexpected.add(new Tuple(ba, new Double(6)));
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrangeWithScores("dst".getBytes(Protocol.UTF8), 0, 100)));
} }
@Test @Test
@@ -350,7 +669,23 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add(new Tuple("a", new Double(3))); expected.add(new Tuple("a", new Double(3)));
assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100));
//Binary
jedis.zadd(bfoo, 1, ba);
jedis.zadd(bfoo, 2, bb);
jedis.zadd(bbar, 2, ba);
int bresult = jedis.zinterstore("dst".getBytes(Protocol.UTF8), bfoo, bbar);
assertEquals(1, bresult);
Set<Tuple> bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(ba, new Double(3)));
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrangeWithScores("dst".getBytes(Protocol.UTF8), 0, 100)));
} }
@Test @Test
public void zintertoreParams() { public void zintertoreParams() {
@@ -369,5 +704,23 @@ public class SortedSetCommandsTest extends JedisCommandTestBase {
expected.add(new Tuple("a", new Double(6))); expected.add(new Tuple("a", new Double(6)));
assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100));
//Binary
jedis.zadd(bfoo, 1, ba);
jedis.zadd(bfoo, 2, bb);
jedis.zadd(bbar, 2, ba);
ZParams bparams = new ZParams();
bparams.weights(2, 2);
bparams.aggregate(ZParams.Aggregate.SUM);
int bresult = jedis.zinterstore("dst".getBytes(Protocol.UTF8), bparams, bfoo, bbar);
assertEquals(1, bresult);
Set<Tuple> bexpected = new LinkedHashSet<Tuple>();
bexpected.add(new Tuple(ba, new Double(6)));
assertTrue(JedisTest.isListAreEquals(bexpected, jedis.zrangeWithScores("dst".getBytes(Protocol.UTF8), 0, 100)));
} }
} }