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

目录

使用命令 zadd,zrange

使用命令 zcard

使用命令 zrem

使用命令 zscore

使用命令 zrank


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

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

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

使用命令 zadd,zrange

    /**
     * 使用命令 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

    /**
     * 使用命令 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

    /**
     * 使用命令 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

    /**
     * 使用命令 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

    /**
     * 使用命令 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);
    }

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/608020.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

景源畅信数字:抖音小店的入住门槛大不大?

近年来&#xff0c;随着短视频平台的崛起&#xff0c;抖音小店逐渐成为了众多商家和创业者关注的焦点。那么&#xff0c;抖音小店的入住门槛究竟大不大呢?本文将从四个方面对这一问题进行详细阐述。 一、注册流程 抖音小店的注册流程相对简单&#xff0c;只需按照官方指引完成…

渲染管线中光照的计算

文章目录 渲染管线中光照的计算前言法向量朗伯余弦定律漫反射环境光照镜面光照菲涅尔效应 表面粗糙度光照模型平行光源点光源衰减 聚光灯 渲染管线中光照的计算 前言 首先我们来看一下同一个模型在有光与无光下的区别&#xff1a; 无光&#xff1a; 有光 很明显的感知就是…

《ESP8266通信指南》14-连接WIFI(基于Lua)

往期 《ESP8266通信指南》13-Lua 简单入门&#xff08;打印数据&#xff09;-CSDN博客 《ESP8266通信指南》12-Lua 固件烧录-CSDN博客 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ES…

【api接口开通教程】YouTube Data API v3申请流程

一、背景调查 1.1 API接口介绍 采集youtube数据&#xff0c;大体分为两种方案&#xff1a;一种是基于爬虫&#xff0c;一种是基于API接口。 说人话就是&#xff1a;爬虫相当于走后门、爬窗户&#xff08;利用技术手段窃取&#xff0c;人家没说给&#xff0c;但我硬拿&#x…

Python - 金三银四心路历程 之 数据结构与算法 刷题

目录 一.引言 二.心路历程 三.刷题经历 四.刷题历程 五.总结 一.引言 <夜深人静写算法> 是 23 年 12 月底博主打算跳槽时开始做刷题准备做的专栏&#xff0c;前后准备了大约一个月&#xff0c;刷题完毕后简单准备了项目和简历后就开始加入找工作大军了&#xff0c;最…

如何在电脑中截屏【攻略】

如何在电脑中截屏【攻略】 前言版权推荐如何在电脑中截屏电脑工具截屏键&#xff1a;PrtScQQ截屏快捷键&#xff1a;CtrlAltA微信截屏快捷键&#xff1a;AltAQQ浏览器截屏快捷键&#xff1a;CtrlShiftXEdge浏览器截屏快捷键&#xff1a;CtrlShiftS 最后 前言 2024-5-9 21:31:3…

MongoDB Atlas Vector Search与Amazon Bedrock集成已全面可用

亮点前瞻 ●MongoDB Atlas Vector Search知识库与Amazon Bedrock的最新集成&#xff0c;将极大加速生成式AI应用的开发。 ●诺和诺德利用MongoDB Atlas Vector Search与Amazon Bedrock集成&#xff0c;加速构建AI应用程序。 MongoDB&#xff08;纳斯达克股票代码&#xff1a…

scikit-learn实现单因子线性回归模型

1.是什么&#xff1a; 针对机器学习提供了数据预处理&#xff0c;分类&#xff0c;回归等常见算法的框架 2.基于scikit-learn求解线性回归的问题&#xff1a; 2.1.求解a&#xff0c;b对新数据进行预测&#xff1a; 2.2评估模型表现&#xff08;y和y’的方差MSE&#xff09;…

Linux流量分析工具 | nethogs

在应急过程中&#xff0c;经常会遇到应用访问缓慢&#xff0c;网络阻塞的情况&#xff0c;分析原因可能会想到存在恶意程序把带宽占满的可能。通过这样一个小工具可以快速定位异常占用带宽程序的路径、PID、占用流量大小或是排除由带宽占满导致服务器缓慢的猜想。 一、简介 Ne…

【ai早报-01 project】

今天和大家分享一款有趣的开源项目 01 Project。 The 01 Project is building an open-source ecosystem for AI devices. 其主旨是基于开源生态&#xff0c;构建以LLM为核心的产品&#xff0c;提供软硬件方案。 市面上类似产品: Rabbit R1, Humane Pin。 如上图所示的这款产…

保姆级零基础微调大模型(LLaMa-Factory,多卡版)

此处非常感谢https://github.com/hiyouga/LLaMA-Factory这个项目。 看到网上的教程很多都是教如何用webui来微调的,这里出一期命令行多卡微调教程~ 1. 模型准备 模型下载比较方便的方法: 1. modelscope社区(首选,速度很高,并且很多需要申请的模型都有)注意要选择代码…

MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解

目录 前言语法示例代码运用 前言 mysql中内置函数date_add 和 date_sub能对指定的时间进行增加或减少一个指定的时间间隔&#xff0c;返回的是一个日期。 语法 添加时间间隔 DATE_ADD(date,INTERVAL expr type)SELECT DATE_add(NOW(),INTERVAL -7 DAY);//获取7天前的日期 S…

编译和链接(超详细)

✅博客主页:爆打维c-CSDN博客​​​​​​ &#x1f43e; &#x1f539;分享c语言知识及代码 一、编译和链接实例 假设我们有一个名为main.c的C语言源文件&#xff0c;它包含了一个简单的Hello World程序。我们可以使用gcc编译器对该源文件进行编译&#xff0c;生成一个可执行…

初学者必知:ARM与单片机的区别

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「ARM的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;ARM和单片机之间有许多区别&#…

锂电池恒流恒压CCCV充电模型MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; CCCV简介 CCCV充电过程是恒流充电&#xff08;CC&#xff09;和恒压充电&#xff08;CV&#xff09;的结合。在CC阶段对电池施加恒定电流&#xff0c;以获得更快的充电速度&#xff0c;此时电池电压持续升高…

python爬取sci论文等一系列网站---通用教程超详细教程

环境准备 确保安装了Python以及requests和BeautifulSoup库。 pip install requests beautifulsoup4确定爬取目标 选择一个含有SCI论文的网站&#xff0c;了解该网站的内容布局和数据结构。 &#xff08;1&#xff09;在浏览器中访问目标网站&#xff0c;右键点击页面并选择…

免费开源低代码平台种草推荐

从业20载&#xff0c;从当初的兴奋&#xff0c;到最后的麻木&#xff0c;甚至怀疑&#xff1a; 程序员是不是就是在不断的学习各种技术&#xff0c; 然后做着同样的重复劳动&#xff08;体力劳动&#xff09;&#xff0c;在各种业务系统上用各种技术做同样的增删改查。 对的&am…

每日两题 / 104. 二叉树的最大深度 102. 二叉树的层序遍历(LeetCode热题100)

104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09; 递归判断&#xff0c;当前节点的最大深度为1 max(左节点的最大深度&#xff0c;右节点的最大深度) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …

C++ 函数重载

两个以上的函数&#xff0c;具有相同的函数名&#xff0c;但是形参的个数或者类型不同&#xff0c;编译器会根据实参的类型机个数的最佳来自动调用哪一个函数。 一 带默认形参值的函数 在定义函数时预先声明默认的形参值。调用时如果给出实参&#xff0c;则用实参初始化形…

为什么需要归档和管理合同

归档和管理合同是非常重要的&#xff0c;主要有以下几个原因&#xff1a; 1. 法律合规性&#xff1a;公司需要遵守法律和监管要求&#xff0c;合同是法律文件&#xff0c;涉及公司的权益和责任。归档和管理合同可以确保公司遵守法律法规&#xff0c;合同的内容和执行过程都符合…