当前位置: 首页 > news >正文

【Redis】Redis 有序集合 Zset 操作 ( 简介 | 查询操作 | 增加操作 | 删除操作 | 修改操作 )

文章目录

  • 一、有序集合 Zset
  • 二、查询操作
    • 1、查询 Zset 所有数据
    • 2、查询 Zset 所有数据和评分
    • 3、查询指定评分范围的 Zset 数据
    • 4、查询指定评分范围的 Zset 数据并从大到小排序
    • 5、统计指定评分范围的 Zset 数据个数
    • 6、查询指定元素在 Zset 有序集合中的排名
  • 三、增加操作
    • 1、向 Redis 中插入 Zset 有序集合
  • 四、删除操作
    • 1、删除指定元素
  • 五、修改操作
    • 1、修改元素评分





一、有序集合 Zset



有序集合 Zset 普通集合 Set 类似 , 都是 没有重复元素的集合 ;

有序集合 Zset 中的 元素排序 , 是 根据 评分 进行排序 , 每个成员 都关联了一个 评分 , 在该 有序集合 中 , 根据 评分 由低到高 进行排序 ;

Zset 中的元素 是 不可重复的 , 但是 元素 关联 的 评分 是可以重复的 , 也就是说 存在 两个不同的元素 关联着 相同的 评分 ;


Zset 中的元素 是 有序 的 , 根据 排序的索引 或者 元素的评分 可以获取 指定范围 的 成员 ; 如 : 获取 中间元素 ;





二、查询操作




1、查询 Zset 所有数据


执行

zrange student 0 -1

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中的所有元素 ;


代码示例 :

127.0.0.1:6379> zadd student 60 Tom 72 Jerry 49 Jack 81 Bill
(integer) 4
127.0.0.1:6379> zrange student 0 -1
1) "Jack"
2) "Tom"
3) "Jerry"
4) "Bill"
127.0.0.1:6379>

在这里插入图片描述


2、查询 Zset 所有数据和评分


执行

zrange student 0 -1 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中的所有元素 和 评分 ;


代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Tom"
4) "60"
5) "Jerry"
6) "72"
7) "Bill"
8) "81"
127.0.0.1:6379>

在这里插入图片描述


3、查询指定评分范围的 Zset 数据


执行

zrangebyscore student 20 70
zrangebyscore student 20 70 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中 20 ~ 70 分 之间的数据 ;


代码示例 :

127.0.0.1:6379> zrangebyscore student 20 70
1) "Jack"
2) "Tom"
127.0.0.1:6379> zrangebyscore student 20 70 withscores
1) "Jack"
2) "49"
3) "Tom"
4) "60"
127.0.0.1:6379>

在这里插入图片描述


4、查询指定评分范围的 Zset 数据并从大到小排序


执行

zrevrangebyscore student 70 20
zrevrangebyscore student 70 20 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中 20 ~ 70 分 之间的数据 , 并且从大到小排序 ;


代码示例 :

127.0.0.1:6379> zrevrangebyscore student 70 20
1) "Tom"
2) "Jack"
127.0.0.1:6379> zrevrangebyscore student 70 20 withscores
1) "Tom"
2) "60"
3) "Jack"
4) "49"
127.0.0.1:6379>

在这里插入图片描述


5、统计指定评分范围的 Zset 数据个数


执行

zcount student 20 70

命令 , 可以 统计 Zset 有序集合中 20 ~ 70 分 之间的数据个数


代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Bill"
6) "81"
127.0.0.1:6379>  zcount student 20 70
(integer) 1
127.0.0.1:6379>

在这里插入图片描述


6、查询指定元素在 Zset 有序集合中的排名


执行

zrank student Jerry

命令 , 可以 查询 Zset 有序集合中 Jack 元素排名 , 从 0 开始排序 ;


代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Bill"
6) "81"
127.0.0.1:6379> zrank student Jerry
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> zrank student Bill
(integer) 2
127.0.0.1:6379>

在这里插入图片描述





三、增加操作




1、向 Redis 中插入 Zset 有序集合


执行

zadd student 60 Tom 72 Jerry 49 Jack 81 Bill 

命令 , 可以 向 Redis 的 student 键 中 存储 Zset 数据 ,

  • Tom 评分 60 ,
  • Jerry 评分 72 ,
  • Jack 评分 49 ,
  • Bill 评分 81 ;

排序原则是 根据 评分 从小到大 进行排序 ;

如果按照 评分 从低到高 排列为 : Jack < Tom < Jerry < Bill ;


代码示例 :

127.0.0.1:6379> zadd student 60 Tom 72 Jerry 49 Jack 81 Bill
(integer) 4
127.0.0.1:6379> zrange student 0 -1
1) "Jack"
2) "Tom"
3) "Jerry"
4) "Bill"
127.0.0.1:6379>

在这里插入图片描述





四、删除操作




1、删除指定元素


执行

zrem student Tom

命令 , 可以 从 Zset 有序集合 中 删除 Tom 元素 ;


代码示例 :

127.0.0.1:6379> zrem student Tom
(integer) 1
127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Bill"
6) "81"
127.0.0.1:6379>

在这里插入图片描述





五、修改操作




1、修改元素评分


执行

zincrby student 20 Tom

命令 , 可以 为 Zset 有序集合 中 的 Tom 元素 的评分 增加 20 ;


代码示例 :

127.0.0.1:6379> zincrby student 20 Tom
"80"
127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Tom"
6) "80"
7) "Bill"
8) "81"
127.0.0.1:6379>

在这里插入图片描述

相关文章:

【Redis】Redis 有序集合 Zset 操作 ( 简介 | 查询操作 | 增加操作 | 删除操作 | 修改操作 )

文章目录一、有序集合 Zset二、查询操作1、查询 Zset 所有数据2、查询 Zset 所有数据和评分3、查询指定评分范围的 Zset 数据4、查询指定评分范围的 Zset 数据并从大到小排序5、统计指定评分范围的 Zset 数据个数6、查询指定元素在 Zset 有序集合中的排名三、增加操作1、向 Red…...

Java特性之设计模式【策略模式】

一、策略模式 概述 在策略模式&#xff08;Strategy Pattern&#xff09;中&#xff0c;一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式 在策略模式中&#xff0c;我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略…...

IR-CUT 保证摄像机成像效果的滤镜

IR-CUT双滤镜是指在摄像头镜头组里内置了一组滤镜&#xff0c;当镜头外的红外感应点侦测到光线的强弱变化后&#xff0c;内置的IR-CUT自动切换滤镜能够根据外部光线的强弱随之自动切换&#xff0c;使图像达到最 佳效果。也就是说&#xff0c;在白天或黑夜下&#xff0c;双滤光片…...

openpnp - 普通航空插头和PCB的连接要使用线对板连接器

文章目录openpnp - 普通航空插头和PCB的连接要使用线对板连接器概述改进实际效果总结ENDopenpnp - 普通航空插头和PCB的连接要使用线对板连接器 概述 和同学讨论问题, 准备将航空插头连接到PCB上. 航空插头选用GX12-4公头, 拧到开孔的铁板上. 然后航空插头公头再与PCB连接. 铁…...

Python3 错误和异常实例及演示

作为 Python 初学者&#xff0c;在刚学习 Python 编程时&#xff0c;经常会看到一些报错信息&#xff0c;在前面我们没有提及&#xff0c;这章节我们会专门介绍。 Python 有2种错误很容易辨认&#xff1a;语法错误和异常。 Python assert&#xff08;断言&#xff09;用于判断…...

Android 9.0第三方app根据包名设置为横屏显示

1.概述 在android9.0的系统rom定制化开发中,在某些横屏的设备比如平板电脑,tv智能电视,广告机等等设备中,通常系统是默认横批显示的,但是在安装一些竖屏app的时候, 就会旋转为竖屏,这个时候操作app也不方便,所以产品需求要求竖屏也需要根据包名横屏显示出来,这就需要在…...

MySQL会导致索引失效的情况与解决索引失效的方法

什么情况会导致索引失效 索引失效也是慢查询的主要原因之一&#xff0c;常见的导致索引失效的情况有下面这些&#xff1a; 1.使用 SELECT * 进行查询;2.创建了组合索引&#xff0c;但查询条件未准守最左匹配原则;3.在索引列上进行计算、函数、类型转换等操作;4.以 % 开头的 L…...

使用nginx单独部署Vben应用

前言 本文主要介绍Vben使用nginx单独部署的方式&#xff0c;其实前端发展到现在已经不是当年的jsp&#xff0c;asp必须要和后端一起部署了。单独部署调试的工具也很多&#xff0c;比如vue-cli-service 和 Vben中用到的vite &#xff0c;当然这些我们一般用在开发的工程中。正式…...

ES6新特性详解

文章目录1. let和const1.1 let声明变量1.2 const声明常量2. 模板字符串3. 解构赋值3.1 数组的解构赋值3.2 对象的解构赋值4. 函数扩展4.1 参数默认值4.2 剩余参数4.3 箭头函数5. 对象扩展5.1 对象简写5.2 属性名表达式5.3 扩展运算符6. Symbol7. Iterator和Generator7.1 Iterat…...

Ubuntu下安装 ntfs-3g

目录1.FAT32、NTFS和exFAT2.ubuntu 安装 ntfs-3g2.1 直接安装2.2 源码安装1.FAT32、NTFS和exFAT U盘在格式化的时候都会有三种格式分别是FAT32、NTFS和exFAT。 FAT32格式   FAT32格式硬盘分区的最大容量为2TB&#xff0c;虽然U盘做不到&#xff0c;但是现在1xTB硬盘都有了&…...

【专业认知】抖音就业 / 保研北大教育学 / 留学南加州EE / 微软就业

2023.2.18 一. 周金辉学长分享——本科经验分享 0 简介 计算机农大本硕 硕士毕业后在抖音公司工作 1 行业前景&#xff1a;计算机专业能做什么&#xff1f; 1.1 计算机行业发展路线 远古时代&#xff1a; 二战开始&#xff0c;计算机技术发展&#xff0c;出现互联网 包…...

【算法题】2 的 n 次幂的背后

前言&#xff1a; 说实话&#xff0c;真的不爱写算法题相关的文章了&#xff0c;觉得没啥意义&#xff0c;但是对这种比较好玩并且简单&#xff0c;学会了就能很好提高算法效率的文章&#xff0c;还是要写一写&#xff0c;不哭不哭&#xff0c;你不会不是你的错&#xff0c;只是…...

【人工智能AI】一、NoSQL 企业级基础入门《NoSQL 企业级基础入门与进阶实战》

写一篇介绍什么是NoSQL的技术文章&#xff0c;分5个章节&#xff0c;每个章节细分到3级目录&#xff0c;重点介绍一下优缺点&#xff0c;适用场景&#xff0c;未来发展趋势等。 一、NoSQL简介 1.1 什么是NoSQL NoSQL&#xff08;Not only SQL&#xff09;&#xff0c;意思是“…...

Ubuntu安装opencv库3.4.10,并在cmake工程中引入opencv库

Windows下安装不同&#xff0c;Ubuntu安装OpenCV库时&#xff0c;需要事先安装依赖&#xff0c;而且不同OpenCV库所需的依赖可能会有所不同&#xff0c;下面的依赖亲测 3.4.10 和 4.5.5版本的有效&#xff0c;但是4.6以上版本安装可能会报错。 参考链接&#xff1a;https://bl…...

实现8086虚拟机(四)——mov 和 jmp 指令解码

文章目录mov 指令解码jmp 指令解码这篇文章举例来讲讲 mov 指令和 jmp 指令解码函数的实现&#xff0c;其他的指令解码函数都与这些类似。mov 指令解码 以 mov 指令中的一类&#xff1a;寄存器/内存 到/从 寄存器&#xff0c;来详细说明解码函数的实现。 机器指令格式如下&am…...

数据库技术-函数依赖、键与约束、范式

一、函数依赖 给定一个x&#xff0c;能唯一确定一个Y&#xff0c;就称x确定Y&#xff0c;或者说Y依赖于x&#xff0c;例如YX*X函数。 函数依赖又可扩展以下两种规则: 部分函数依赖:A可确定C&#xff0c;(A,B)也可确定C,(A,B)中的一部分&#xff08;即A&#xff09;可以确定C&a…...

shiro CVE-2020-1957

0x00 前言 在之前只是单纯的复现了漏洞&#xff0c;没有记笔记&#xff0c;所以补充了这篇分析笔记。 影响版本&#xff1a;shiro < 1.5.2 0x01 环境搭建 环境用的是&#xff1a;https://github.com/lenve/javaboy-code-samples/tree/master/shiro/shiro-basic 0x02 漏…...

RabbitMQ 入门到应用 ( 五 ) 基本应用

6.更多应用 6.1.AmqpAdmin 工具类 可以通过Spring的Autowired 注入 AmqpAdmin 工具类 , 通过这个工具类创建 队列, 交换机及绑定 import org.springframework.amqp.core.AmqpAdmin; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.Di…...

部署dapr的辛酸历程

前言dapr大概的了解&#xff0c;个人理解他就是一个分布式服务的管理&#xff0c;把微服务常用的组件(缓存&#xff0c;消息中间件、分布式锁、安全id4等)和监控以及服务注册、发现等等一系列功能以一个很抽象的方式管理起来。可能我们部署微服务用consul、ocelot、polly套件、…...

golang入门笔记——内存管理

文章目录自动内存管理概念自动内存管理-相关概念&#xff1a;追踪垃圾回收&#xff1a;分代GC&#xff08;Generational GC&#xff09;引用计数内存分配Go内存分配-分块Go内存分配——多级缓存Go内存管理优化Balanced GC自动内存管理 概念 1.动态内存 程序在运行时根据需求…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...