设为首页 加入收藏

TOP

通过 Jedis API 使用 Sorted Set 排序集合
2014-11-24 11:50:17 来源: 作者: 【 】 浏览:1
Tags:通过 Jedis API 使用 Sorted Set 排序 集合

Jedis 是 Redis 官方首选的 Java 客户端开发包。这篇文章我们将介绍如何使用 Sorted Set 排序集合(zsets)。


Sorted Set 跟一个集合一样,它是不会存在重复的数值,最大的不同是 Sorted Set 中每个元素都是经过排序的。


我们先看一些命令:


import java.util.HashMap;
import java.util.Map;


import redis.clients.jedis.Jedis;
public class TestJedis {


public static void main(String[] args) {
String key = "mostUsedLanguages";
Jedis jedis = new Jedis("localhost");
//Adding a value with score to the set
jedis.zadd(key,100,"Java");//ZADD


//We could add more than one value in one calling
Map scoreMembers = new HashMap();
scoreMembers.put(90d, "Python");
scoreMembers.put(80d, "java script");
jedis.zadd(key, scoreMembers);


//We could get the score for a member
System.out.println("Number of Java users:" + jedis.zscore(key, "Java"));


//We could get the number of elements on the set
System.out.println("Number of elements:" + jedis.zcard(key));//ZCARD
}
}


上述例子中我们看到了 Zset 命令,为了将元素添加到 zet 中,我们使用 zadd 方法,不同的是我们还传递了一个元素的评分值,我们可以使用 Map 对象来一次传递很多个对象,而 zadd 方法可用于增加和更新已有元素的评分值。


我们可使用 zscore 来获取某元素的评分,通过 zcard 获取元素个数。


下面的例子我们可看到来自 zsets 的其他命令:


import java.util.Set;


import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;
public class TestJedis {


public static void main(String[] args) {
String key = "mostUsedLanguages";
Jedis jedis = new Jedis("localhost");


//get all the elements sorted from bottom to top
System.out.println(jedis.zrange(key, 0, -1));


//get all the elements sorted from top to bottom
System.out.println(jedis.zrevrange(key, 0, -1));
//We could get the elements with the associated score
Set elements = jedis.zrevrangeWithScores(key, 0, -1);
for(Tuple tuple: elements){
System.out.println(tuple.getElement() + "-" + tuple.getScore());
}


//We can increment a score for a element using ZINCRBY
System.out.println("Score before zincrby:" + jedis.zscore(key, "Python"));
//Incrementing the element score
jedis.zincrby(key, 1, "Python");
System.out.println("Score after zincrby:" + jedis.zscore(key, "Python"));
}
}


通过 zrange 我们能获取给定范围的元素,它将返回经过排序后的元素列表(自底向上),也可以通过 zrevrrange 获取自顶向下的元素列表。Redis 还允许我们通过关联的评分来获取元素,传递 “withscores“ 参数即可。使用 Jedis API 的 zrevrangeWithScores 方法可返回对象集合。另外一个有用的命令是 zincrby 可用于增加元素的评分值。


zsets 还有其他的命令,这里我们只是介绍跟 Jedis API 相关的一些基本用法。这里还有一些关于排序集合的介绍。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言中获得系统当前日期 和 时间 下一篇C语言中的多字节字符与宽字符

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·深入理解 Java 集合 (2025-12-27 07:22:48)
·Java集合框架全面解 (2025-12-27 07:22:45)
·时隔 15 年,巨著《J (2025-12-27 07:22:43)
·定义一个类模板并实 (2025-12-27 06:52:28)
·一文搞懂怎么用C语言 (2025-12-27 06:52:25)