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

总结

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

相关文章

  • 使用Redis实现微信步数排行榜功能

    使用Redis实现微信步数排行榜功能

    这篇文章主要介绍了使用Redis实现微信步数排行榜功能,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Linux下安装Redis 6.0.5的实现

    Linux下安装Redis 6.0.5的实现

    本文详细介绍了在Linux系统下安装Redis 6.0.5的步骤,包括安装准备、编译安装、启动服务、设置密码和配置文件修改等,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • Redis Brpop 命令作用详解

    Redis Brpop 命令作用详解

    BRPOP 是一个阻塞的列表弹出原语,该命令会按照给出的 key 顺序查看 list,并在找到的第一个非空 list 的尾部弹出一个元素,今天通过本文给大家介绍Redis Brpop 命令相关知识,感兴趣的朋友一起看看吧
    2023-07-07
  • Redis 键值对(key-value)数据库实现方法

    Redis 键值对(key-value)数据库实现方法

    Redis 的键值对中的 key 就是字符串对象,而 value 可以是字符串对象,也可以是集合数据类型的对象,比如 List 对象,Hash 对象、Set 对象和 Zset 对象,这篇文章主要介绍了Redis 键值对数据库是怎么实现的,需要的朋友可以参考下
    2024-05-05
  • Redis List列表相关命令的用法详解

    Redis List列表相关命令的用法详解

    这篇文章主要为大家详细介绍了Redis中List列表相关命令的用法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • redis中opsForList().range()的使用方法详解

    redis中opsForList().range()的使用方法详解

    这篇文章主要给大家介绍了关于redis中opsForList().range()的使用方法,文中通过实例代码以及图文介绍的非常详细,对大家学习或者使用redis具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • redis keys与scan命令的区别说明

    redis keys与scan命令的区别说明

    这篇文章主要介绍了redis keys与scan命令的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • redis重新创建集群的实现步骤

    redis重新创建集群的实现步骤

    本文主要介绍了redis重新创建集群的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-05-05
  • 基于Redis的分布式锁及原子性问题(短视频开发)

    基于Redis的分布式锁及原子性问题(短视频开发)

    短视频开发中,Redis分布式锁通过SETNX实现加锁与解锁,需设置超时时间避免死锁,为防止误删,释放锁时需判断线程身份,并用Lua脚本保证原子性,确保安全操作,本文给大家介绍基于Redis的分布式锁及原子性问题,感兴趣的朋友一起看看吧
    2025-06-06
  • Redis的BitMap使用操作命令

    Redis的BitMap使用操作命令

    Redis 为我们提供了位图这一数据结构,每个用户每天的登录记录只占据一位,365天就是365位,仅仅需要46字节就可存储,极大地节约了存储空间,这篇文章主要介绍了Redis的BitMap使用操作命令,需要的朋友可以参考下
    2023-10-10

最新评论