其中zadd的score是double类型,如果要添加多个元素需要使用map
而zrange返回的则是list类型
而zrangeWithScore返回的是List< Tuple >类型,Tuple代表元组,可以根据下标获取对应位置的key的value
public static void zaddAndzrange(Jedis jedis){
jedis.flushAll();
jedis.zadd("key", 100, "curry");
Map<String, Double> map = new HashMap<>();
map.put("lebron", 95.0);
map.put("durant", 97.0);
jedis.zadd("key", map);
List<String> members = jedis.zrange("key", 0, -1);
System.out.println(members);
List<Tuple> result = jedis.zrangeWithScores("key", 0, -1);
System.out.println(result);
double score = result.get(0).getScore();
System.out.println(score);
}
控制台输出
[lebron, durant, curry]
[[lebron,95.0], [durant,97.0], [curry,100.0]]
95.0
返回值为long类型
public static void zcard(Jedis jedis){
jedis.flushAll();
jedis.zadd("key", 100, "curry");
Map<String, Double> map = new HashMap<>();
map.put("lebron", 95.0);
map.put("durant", 97.0);
jedis.zadd("key", map);
long size = jedis.zcard("key");
System.out.println(size);
}
控制台输出
3
public static void zrem(Jedis jedis){
jedis.flushAll();
jedis.zadd("key", 100, "curry");
Map<String, Double> map = new HashMap<>();
map.put("lebron", 95.0);
map.put("durant", 97.0);
jedis.zadd("key", map);
long n = jedis.zrem("key", "lebron", "durant");
System.out.println(n);
System.out.println(jedis.zrange("key", 0, -1));
}
控制台输出:
2
[curry]
返回的是Double,需要注意这里是包装类的Double,不要用double进行接收,防止key不存在返回null
public static void zscore(Jedis jedis){
jedis.flushAll();
jedis.zadd("key", 100, "curry");
Double score = jedis.zscore("key", "curry");
System.out.println(score);
System.out.println(jedis.zscore("key", "zhangsan"));
}
控制台输出
100.0
null
这里的返回值是Long,也是包装类,需要注意返回null的情况
public static void zrank(Jedis jedis){
jedis.flushAll();
jedis.zadd("key", 100, "curry");
Map<String, Double> map = new HashMap<>();
map.put("lebron", 95.0);
map.put("durant", 97.0);
jedis.zadd("key", map);
Long rank = jedis.zrank("key", "durant");
System.out.println(rank);
}
控制台输出
1