通过 Java 操作 redis -- zset 有序集合基本命令

目录

[使用命令 zadd,zrange](#使用命令 zadd,zrange)

[使用命令 zcard](#使用命令 zcard)

[使用命令 zrem](#使用命令 zrem)

[使用命令 zscore](#使用命令 zscore)

[使用命令 zrank](#使用命令 zrank)


关于 redis zset 有序集合类型的相关命令推荐看Redis - Zset 有序集合

要想通过 Java 操作 redis,首先要连接上 redis 服务器推荐看通过 Java 操作 redis -- 连接 redis

本博客只介绍了一小部分常用的命令,其他的命令根据上面推荐的博客也能很简单的使用出来(推荐先看上面推荐的博客,有 redis 的原生命令)

使用命令 zadd,zrange

java 复制代码
    /**
     * 使用命令 zadd,zrange
     * */
    public static void test1(Jedis jedis){
        //清空 redis 所有数据库中的数据
        jedis.flushAll();

        //向 redis 中插入类型为 zset 的键值对 key1,有序集合的元素为 zhangsan,分数为 10
        //返回值为插入成功的元素个数
        long result1=jedis.zadd("key1",10,"zhangsan");
        System.out.println("result1:"+result1);

        Map<String,Double> map=new HashMap<>();
        map.put("lisi",20.0);
        map.put("wangwu",30.0);

        //配合 Map,一次性向 key1 对应的有序集合中插入两个元素
        //返回值为插入成功的元素个数
        long result2=jedis.zadd("key1",map);
        System.out.println("result2:"+result2);

        //获取 key1 对应的有序集合中,下标 0 ~ -1(最后一位)之间的所有元素
        List<String> result3=jedis.zrange("key1",0,-1);
        System.out.println("result3:"+result3);

        //获取 key1 对应的有序集合中,下标 0 ~ -1(最后一位)之间的所有元素和分数
        // Tuple 是 Jedis 中定义的类,表示元组,元素和分数表示一个二元组
        List<Tuple> elementAndScore=jedis.zrangeWithScores("key1",0,-1);
        System.out.println("elementAndScore:"+elementAndScore);

        //通过 List<Tuple> 类型的对象可以获取指定下标元组的元素
        String result4=elementAndScore.get(0).getElement();
        System.out.println("result4:"+result4);

        //通过 List<Tuple> 类型的对象可以获取指定下标元组的分数
        Double result5=elementAndScore.get(0).getScore();
        System.out.println("result5:"+result5);
    }

运行结果

使用命令 zcard

java 复制代码
    /**
     * 使用命令 zcard
     * */
    public static void test2(Jedis jedis){
        //清空 redis 所有数据库中的数据
        jedis.flushAll();

        Map<String,Double> map=new HashMap<>();
        map.put("zhangsan",10.0);
        map.put("lisi",20.0);
        map.put("wangwu",30.0);

        jedis.zadd("key1",map);

        //获取有序集合 key1 中的元素个数
        long result1=jedis.zcard("key1");
        System.out.println("result1:"+result1);
    }

运行结果

使用命令 zrem

java 复制代码
    /**
     * 使用命令 zrem
     * */
    public static void test3(Jedis jedis){
        //清空 redis 所有数据库中的数据
        jedis.flushAll();

        Map<String,Double> map=new HashMap<>();
        map.put("zhangsan",10.0);
        map.put("lisi",20.0);
        map.put("wangwu",30.0);

        jedis.zadd("key1",map);

        //删除 key1 对应的有序集合中的元素 zhangsan 和 lisi ,返回删除成功的元素个数
        long result1=jedis.zrem("key1","zhangsan","lisi");
        System.out.println("result1:"+result1);
    }

运行结果

使用命令 zscore

java 复制代码
    /**
     * 使用命令 zscore
     * */
    public static void test4(Jedis jedis){
        //清空 redis 所有数据库中的数据
        jedis.flushAll();

        Map<String,Double> map=new HashMap<>();
        map.put("zhangsan",10.0);
        map.put("lisi",20.0);
        map.put("wangwu",30.0);

        jedis.zadd("key1",map);

        Double result1=jedis.zscore("key1","zhangsan");
        System.out.println("result1:"+result1);
    }

运行结果

使用命令 zrank

java 复制代码
    /**
     * 使用命令 zrank
     * */
    public static void test5(Jedis jedis){
        //清空 redis 所有数据库中的数据
        jedis.flushAll();

        Map<String,Double> map=new HashMap<>();
        map.put("zhangsan",10.0);
        map.put("lisi",20.0);
        map.put("wangwu",30.0);

        jedis.zadd("key1",map);

        //获取 key1 对应的有序集合中,元素 zhangsan 对应的排名
        Long result1=jedis.zrank("key1","zhangsan");
        System.out.println("result1:"+result1);
    }

运行结果

相关推荐
nanxun88621 小时前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103511 天前
Day01 | Java 基础(Java SE)
java
行者全栈架构师1 天前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师1 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_01 天前
mac(m5)平台编译openjdk
java
用户3169353811832 天前
Java连接Redis
redis
唐青枫2 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java