通过 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);
    }

运行结果

相关推荐
pumpkin845142 小时前
Rust Mock 工具
开发语言·rust
love530love2 小时前
【笔记】在 MSYS2(MINGW64)中安装 python-maturin 的记录
运维·开发语言·人工智能·windows·笔记·python
阿卡蒂奥3 小时前
C# 结合PaddleOCRSharp搭建Http网络服务
开发语言·http·c#
fanged4 小时前
构建系统maven
java·maven
沙滩小岛小木屋4 小时前
maven编译时跳过test过程
java·maven
江沉晚呤时5 小时前
SQL Server 事务详解:概念、特性、隔离级别与实践
java·数据库·oracle·c#·.netcore
泉飒5 小时前
lua注意事项
开发语言·笔记·lua
hao_wujing5 小时前
使用逆强化学习对网络攻击者的行为偏好进行建模
开发语言·网络·php
还是鼠鼠5 小时前
单元测试-概述&入门
java·开发语言·后端·单元测试·log4j·maven
明月看潮生6 小时前
青少年编程与数学 02-020 C#程序设计基础 14课题、程序调试
开发语言·青少年编程·c#·编程与数学