Redis之Jedis中zset类型使用方式

 更新时间:2025年09月11日 09:02:31   作者:Xiao8830  
zadd的score为double类型,添加多个元素需用map;zrange返回List,zrangeWithScore返回List<Tuple>,zcard和zrem返回Long,zscore返回Double包装类需注意null,zrank返回Long包装类

zadd 和 zrange

其中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

zcard

返回值为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

zrem

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]

zscore

返回的是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

zrank

这里的返回值是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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • redisson滑动时间窗应用场景解决方案

    redisson滑动时间窗应用场景解决方案

    前10分钟内累计3次验证失败后,增加图形验证码验证条件,前10分钟内累计6次验证失败后,系统自动锁定该账号15分钟,15分钟后自动解锁,本文给大家分享redisson滑动时间窗应用场景解决方案,感兴趣的朋友一起看看吧
    2024-01-01
  • Redis集群设置密码访问的实现

    Redis集群设置密码访问的实现

    本文档介绍了在Redis集群上配置和管理密码,包括为每个节点添加requirepass配置以启用密码保护,及通过redis-cli关闭集群时使用密码,感兴趣的可以了解一下
    2025-08-08
  • redis初学者常见字符乱码问题及解决方案

    redis初学者常见字符乱码问题及解决方案

    这篇文章主要介绍了redis初学者常见字符乱码问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • redis zset实现滑动窗口限流的代码

    redis zset实现滑动窗口限流的代码

    这篇文章主要介绍了redis zset实现滑动窗口限流,滑动窗口算法思想就是记录一个滑动的时间窗口内的操作次数,操作次数超过阈值则进行限流,本文通过实例代码给大家详细介绍,需要的朋友参考下吧
    2022-03-03
  • redis中如何使用lua脚本让你的灵活性提高5个逼格详解

    redis中如何使用lua脚本让你的灵活性提高5个逼格详解

    这篇文章主要给大家介绍了关于redis中如何使用lua脚本让你的灵活性提高5个逼格的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • Redis密码设置与访问限制实现方法

    Redis密码设置与访问限制实现方法

    这篇文章主要介绍了Redis密码设置与访问限制实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Redis6.0搭建集群Redis-cluster的方法

    Redis6.0搭建集群Redis-cluster的方法

    这篇文章主要介绍了Redis6.0搭建集群Redis-cluster的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 如何使用Redis 实现分布式锁(含自动续期与安全释放)

    如何使用Redis 实现分布式锁(含自动续期与安全释放)

    本文详解用Redis实现分布式锁,包含自动续期与安全释放,推荐使用Redisson,内置可重入、Watchdog及高可用支持,对比原生和自研方案,强调其在生产环境的高效与安全性,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • Redis未授权访问配合SSH key文件利用详解

    Redis未授权访问配合SSH key文件利用详解

    这篇文章主要给大家介绍了关于Redis未授权访问配合SSH key文件利用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • 详解Redis基本命令与使用场景

    详解Redis基本命令与使用场景

    REmote DIctionary Server(Redis)是一个由Salvatore Sanfilippo写的key-value 存储系统,是跨平台的非关系型数据库,是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
    2021-06-06

最新评论