通过Jedis API使用排序集

在上一篇文章中,我们开始研究Jedis API和Java Redis Client。 在本文中,我们将研究Sorted Set(zsets)。

排序集的工作方式类似于集,因为它不允许重复的值。 最大的区别在于,在“排序集”中,每个元素都有一个分数,以便保持元素的排序。

我们可以在下面看到一些命令:

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<Double, String> scoreMembers = new HashMap<Double, String>();
 scoreMembers.put(90d, "Python");
 scoreMembers.put(80d, "Javascript");
 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方法,不同之处在于我们还传递了该元素的得分。 有一个重载版本,我们可以使用映射传递许多值。 zadd可用于添加和更新现有元素的分数。

我们可以使用zcard命令使用zscore和元素数量获得给定元素的分数。

下面我们可以看到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<Tuple> 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还允许我们获取具有相关分数的元素。 在redis中,我们传递选项“ withscores ”。 通过Jedis API,我们使用方法zrevrangeWithScores返回一个元组对象集。 其他有用的命令是zincrby ,我们可以增加集合中某个成员的分数。

zsets还有其他命令,本文仅旨在显示Jedis API的一些基本用法。 我们可以在这篇文章中找到排序集的好用例。

下篇再见。

参考: XICO JUNIOR'S WEBLOG博客中JCG合作伙伴 Francisco Ribeiro Junior的使用带有Jedis API的排序集

翻译自: https://www.javacodegeeks.com/2013/11/using-sorted-sets-with-jedis-api.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值