在上一篇文章中,我们开始研究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 setjedis.zadd(key,100,"Java");//ZADD//We could add more than one value in one callingMap<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 memberSystem.out.println("Number of Java users:" + jedis.zscore(key, "Java"));//We could get the number of elements on the setSystem.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 topSystem.out.println(jedis.zrange(key, 0, -1));//get all the elements sorted from top to bottomSystem.out.println(jedis.zrevrange(key, 0, -1));//We could get the elements with the associated scoreSet<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 ZINCRBYSystem.out.println("Score before zincrby:" + jedis.zscore(key, "Python"));//Incrementing the element scorejedis.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

通过Jedis API使用排序集相关推荐

  1. jedis_通过Jedis API使用排序集

    jedis 在上一篇文章中,我们开始研究Jedis API和Java Redis Client. 在本文中,我们将研究Sorted Set(zsets). Sorted Set不允许重复的值,就像Se ...

  2. jedis使用 api_通过Jedis API使用排序集

    jedis使用 api 在上一篇文章中,我们开始研究Jedis API和Java Redis Client. 在这篇文章中,我们将研究Sorted Set(zsets). Sorted Set的工作方 ...

  3. Java API访问HDFS集群(HA)

    title: Java API访问HDFS集群(HA) date: 2021-06-23 17:06:11 tags: HDFS hadoopV2版本及以后都是HA架构,active namenode ...

  4. Kubernetes API Server 之集群安全认证

    文章目录 前言 一.为什么要有 api-server 集群安全认证? 二.安全机制的三个流程 三.HTTP Bearer Token 认证 四.HTTPS 双向证书认证 总结 前言 kubernete ...

  5. (七)使用jedis连接单机和集群(一步一个坑踩出来的辛酸泪)

    环境准备: redis-4.0.9,最新版了 ruby:redis-x.x.x.gem    这个gem什么版本都行,我redis4用3.0.0的gem正常跑 jedis-2.9.0.jar,最新版 ...

  6. python连接es数据库_Python Elasticsearch API操作ES集群

    环境Centos 7.4 Python 2.7 Pip 2.7 MySQL-python 1.2.5 Elasticsearc 6.3.1 Elasitcsearch6.3.2 知识点调用Python ...

  7. MapReduce Java API实例-排序

    场景 MapReduce Java API实例-统计单词出现频率: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/11941016 ...

  8. 使用HDFS客户端java api读取hadoop集群上的信息

    本文介绍使用hdfs java api的配置方法. 1.先解决依赖,pom <dependency><groupId>org.apache.hadoop</groupId ...

  9. ArcEngine二次开发API之Bug集(一 )

    今天,在本集(一)中给大家讲三个bug的集,这三个bug害的我弄了好几天,这几天的教训,也让我明白了今后的开发中,也不能完全相信API,难免API也会出现使用描述的错误. 1.GP之ExtractBy ...

最新文章

  1. java excel上传--poi
  2. python笔记之序列(str的基本使用和常用操作)
  3. android 文字fly动画,超好看的下拉刷新动画Android代码实现
  4. http --- 路由器缓存与常见的状态码
  5. 图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)
  6. TestNG执行测试方法依赖关系
  7. MySQL表设计(表的关联关系)
  8. 隐藏input的光标
  9. python做3d相册_简单3D翻页相册制作教程(示例代码)
  10. github构建自己的代码库
  11. 主分区损坏diskgenius_Diskgenius硬盘分区表坏了不要紧 用软件三步就能修复
  12. php 自动抢红包机制,用脚本实现自动抢红包
  13. 手机计算机怎么缩小桌面图标,桌面图标怎么变小-iPhone图标突然变大?不要方,来看看这几招...
  14. HMAC-SHA1加密算法c++与java的实现
  15. 圣诞树Easyx绘图
  16. php支持postgresql,php支持postgresql
  17. Android学习笔记----解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题
  18. 魔百盒M401A_晶晨S905L3A_2+16G_安卓9_原厂卡刷固件包及详细教程
  19. 四轴飞行器-概念扫盲
  20. Android WebView 精简Demo

热门文章

  1. 阅读副本和Spring Data第2部分:配置基础项目
  2. gwt格式_活性GWT
  3. apache isis_使用Apache Isis快速进行SEMAT应用程序开发
  4. junit:junit_简而言之,JUnit:另一个JUnit教程
  5. java 调用 js性能_太快了,太变态了:什么会影响Java中的方法调用性能?
  6. Spring Data Redis:Sentinel的高可用性
  7. jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件
  8. couchbase_使用Couchbase分页
  9. 知识蒸馏 循环蒸馏_Java垃圾收集蒸馏
  10. eventbus多个订阅_番石榴的EventBus –简单的发布者/订阅者