Redis系列命令更新--Redis有序集合命令

news2024/9/20 16:38:58

Redis有序集合(sorted set)

(1)说明:

A、Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员;不同的是每个元素都会关联一个double类型的分数;redis正式通过分数来为集合中的成员进行从小到大的排序;有序集合的成员是唯一的,但分数(score)却可以重复;

B、集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1);集合中最大的成员数是2^(32-1)((4294967295, 每个集合可存储40多亿个成员)

(2)实例:

 

 

70e3bd8cc5f22dd05c65c2605e2aafd5.jpeg

 

 

Redis有序集合命令:

1、Redis Zadd命令

(1)说明:Redis Zadd命令用于将一个或多个成员元素及其分数值加入到有序集当中;如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证成员在正确的位置上;分数值可以是整数值或双精度浮点数;如果有序集合key不存在,则创建一个空的有序集并执行ZADD操作;当key存在但不是有序集类型时,返回一个错误

(2)语法:redis 127.0.0.1:6379> ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN;返回被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员

(3)实例:

 

 

049ba8b029e884acf09db5b0dd1493a2.png

 

 

2、Redis Zcard命令

(1)说明:Redis Zcard命令用于计算机集合中元素的数量

(2)语法:redis 127.0.0.1:6379> ZCARD KEY_NAME;当key存在且是有序集类型时,返回有序集的基数;当key不存在时,返回0

(3)实例:

 

 

ab6be4384cd943ab542f877285e43038.png

 

 

3、Redis Zcount命令

(1)说明:Redis Zcount命令用于计算有序集合中指定分数区间的成员数量

(2)语法:redis 127.0.0.1:6379> ZCOUNT key min max;返回分数值在min和max之间的成员的数量

(3)实例:

 

 

8306d5437900d6b337083d82317b3976.png

 

 

4、Redis Zincrby命令

(1)说明:Redis Zincrby命令对有序集合中指定成员的分数加上增量increment;可以通过传递一个负数值increment,让分数减去相应的值,比如ZINCRBY key-5 member,就是让member的score值减去5

当key不存在,或分数不是key的成员时,ZINCRBY key increment member等同于ZADD key increment menber;当key不是有序集类型时,返回一个错误;分数值可以是整数值或双精度浮点数

(2)语法:redis 127.0.0.1:6379> ZINCRBY key increment member;返回member成员的新分数值,以字符串形式表示;

(3)实例:

 

 

a26130242a36f4df5c2b38a47eacd8a0.png

 

 

5、Redis Zinterstore命令

(1)说明:Redis Zinterstore命令计算给定的一个或多个有序集的交集,其中给定key的数量必须以numkeys参数指定,并将该交集(结果集)储存到destination;

默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和

(2)语法:redis 127.0.0.1:6379> ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX];返回保存到目标结果集的成员数量

(3)实例:

 

 

059f58f3a4442de0777484f0616c6cab.png

 

 

6、Redis Zlexcount命令

(1)说明:Redis Zlexcount命令在计算有序集合中指定字典区间内成员数量

(2)语法:redis 127.0.0.1:6379> ZLEXCOUNT KEY MIN MAX;返回区间内的成员数量

(3)实例:

 

 

81eaf5e8ad85ee6f8e7676e99122bee9.png

 

 

7、Redis Zrange命令

(1)说明:Redis Zrange命令返回有序集中,指定区间内的成员;其中成员的位置按分数值递增(从小到大)来排序;具有相同分数值的成员按字典序(lexicographical order)来排列;如果你需要成员按值递减(从大到小)来排列,请使用ZREVARANGE命令;下标参数start和stop都以0为底,也就是说,以0表示有序集第一个成员,以1表示有序集第二个成员,以此类推;你也可以使用负数下标,以-1表示最后一个成员,-2表示倒数第二个成员,以此类推。

(2)语法:redis 127.0.0.1:6379> ZRANGE key start stop [WITHSCORES];指定区间内,带有分数值(可选)的有序集成员的列表

(3)实例:

 

 

8aa81eabbc456189b3e5a35a09f5bd21.jpeg

 

 

8、Redis Zrangebylex命令

(1)说明:Redis Zrangebylex通过字典区间返回有序集合的成员

(2)语法:redis 127.0.0.1:6379> ZRANGEBYLEX key min max [LIMIT offset count];返回指定区间内的元素列表

(3)实例:

 

 

dc97fb8235a18928affc9cac01c59ca2.png

 

 

9、Redis Zrangebyscore命令

(1)说明:Redis Zrangebyscore命令返回有序集合中指定分数区间的成员列表;有序集成员按分数值递增(从小到大)次序排列;具有相同分数值的成员按字典来排列(该属性是有序集提供的,不需要额外的计算);默认情况下,区间的取值使用闭区间(小于等于或大于等于), 你也可以通过给参数前增加(符号来使用可选的开区间(小于或大于));

(2)语法:redis 127.0.0.1:6379> ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count];返回指定区间内,带有分数值(可选)的有序成员的列表

(3)实例:

A、

 

 

 

 

6ac68bc293794f6e14f148d3051ed024.png

 
 

B、

 

 

 

010f2d785fe14eb793c57c44e365e495.png

 

10、Redis Zrevrange命令

(1)说明:Redis Zrevrange命令返回有序集中,指定区间内的成员;其中成员的位置按分数值递减(从大到小)来排列;具有相同分数值的成员按字典序的逆序排列;除了成员按分数值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样

(2)语法:redis 127.0.0.1:6379> ZREVRANGE key start stop [WITHSCORES];返回指定区间内,带有分数值(可选)的有序集成员的列表

(3)实例:

 

 

d1f07a3674bc51930d34835ffb1300d3.png

 

 

11、Redis Zrevrangebyscore命令

(1)说明:Redis Zravangebyscore返回有序集中指定分数区间内的所有的成员;有序集成员按分数值递减(从大到小)的次序排列;具有相同分数值的成员按字典的逆序排列;除了成员按分数值递减的次序排列这一点外,ZREVRANGEBYSCORE 命令的其他方面和 ZRANGEBYSCORE 命令一样。

(2)语法:redis 127.0.0.1:6379> ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count];返回指定区间内,带有分数值(可选)的有序集成员的列表

(3)实例:

 

 

ed57d9262e62ec96a36cdd497b846262.png

 

 

12、Redis Zrevrank命令

(1)说明:Redis Zrevrank命令返回有序集中成员的排名;其中有序集成员按分数值递减(从大到小)排序,排序以0为底,也就是说,分数值最大的成员排名为0;使用ZRANK命令可以获得成员按分数值递增排列的排名(从小到大)

(2)语法:redis 127.0.0.1:6379> ZREVRANK key member;如果成员是有序集key的成员,返回成员的排名;如果成员不是有序集key的成员,返回nil

(3)实例:

 

 

d29fc0e67b9199b595ea05ca50823ecc.png

 

 

13、Redis Zscore命令

(1)说明:Redis Zscore命令返回有序集中,成员的分数值;如果成员元素不是有序集key的成员,或key不存在,返回nil

2)语法:redis 127.0.0.1:6379> ZSCORE key member;返回成员的分数值,以字符串的形式表示

(3)实例:

 

 

 

49337b1cb30f929fe2a9ee615a3eeb2b.png

 

14、Redis Zunionstore命令

(1)说明:Redis Zunionstore命令计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)储存到destination;默认情况下,结果几种某个成员的分数值是所有给定集下该成员分数值之和

(2)语法:redis 127.0.0.1:6379> ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX];返回保存到destination的结果集的成员数量

(3)实例:

 

 

6683df20e54d5d5e7ead555f1f13c7bb.jpeg

 

 

15、Redis Zscan命令

(1)说明:Redis Zscan命令用于迭代有序集合中的元素(包含元素成员和元素分值)

(2)语法:redis 127.0.0.1:6379> ZSCAN key cursor [MATCH pattern] [COUNT count];返回的每个元素都是有序集合元素,一个有序集合元素由一个成员和一个分值组成

 

 

以上的内容来源于菜鸟教程,都是从里面总结并且通过自己亲自操作截图整理的,希望对你有帮助。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java语言程序设计——篇五(1)

数组 概述数组定义实例展示实战演练 二维数组定义数组元素的使用数组初始化器实战演练:矩阵计算 💫不规则二维数组实战演练:杨辉三角形 概述 ⚡️数组是相同数据类型的元素集合。各元素是有先后顺序的,它们在内存中按照这个先后顺…

【ProtoBuf】通讯录实现(网络版)

Protobuf 还常用于通讯协议、服务端数据交换场景。那么在这个示例中,我们将实现一个网络版本的通讯录,模拟实现客户端与服务端的交互,通过 Protobuf 来实现各端之间的协议序列化。 需求如下: 客户端可以选择对通讯录进行以下操…

电脑文件恢复哪个好?分享四个建议记住常备的方法!

当我们发现电脑误删文件的时候,一定会感到焦虑和困惑,但是一味地焦虑和困惑是没有任何帮助的。我们需要保持冷静,然后通过以下几个方法找回。 电脑文件恢复的方法有很多,选对适合自己的数据恢复软件很重要,本文罗列了几…

引领小模型潮流!OpenAI发布功能强大且成本低的GPT-4o mini

GPT-4o mini的成本比GPT-3.5 Turbo低了超过60%,其聊天表现优于Google的Gemini Flash和Anthropic的Claude Haiku。该模型从周四开始对ChatGPT的免费用户、ChatGPT Plus用户和团队订阅用户开放,并将在下周向企业用户开放。OpenAI计划未来将图像、视频和音频…

Linux——五种IO模型

目录 一、I/O的理解 二、五种IO模型 1.阻塞式IO 2.非阻塞式IO 3.信号驱动IO 4.多路复用IO 5.异步IO 一、I/O的理解 I/O的本质就是输入输出,C语言的stdio,C的iostream,添加了这两个库,我们才能够进行printf、scanf、cin、c…

UDP网口(1)概述

文章目录 1.计算机网络知识在互联网中的应用2.认识FPGA实现UDP网口通信3.FPGA实现UDP网口通信的方案4.FPGA实现UDP网口文章安排5.传送门 1.计算机网络知识在互联网中的应用 以在浏览器中输入淘宝网为例,介绍数据在互联网是如何传输的。我们将要发送的数据包称作A&a…

人工智能AI合集:1、嵌入式LinuxAI开发套件OrangePI AIPRO初体验

前言 随着人工智能技术的飞速发展,AI已经不再是遥不可及的高科技概念,而是逐渐融入到我们的日常生活中。从智能手机的语音助手到家庭中的智能音箱,再到工业自动化和医疗诊断,AI的应用无处不在。然而,要想真正掌握并应用…

数学建模学习(111):改进遗传算法(引入模拟退火、轮盘赌和网格搜索)求解JSP问题

文章目录 一、车间调度问题1.1目前处理方法1.2简单案例 二、基于改进遗传算法求解车间调度2.1车间调度背景介绍2.2遗传算法介绍2.2.1基本流程2.2.2遗传算法的基本操作和公式2.2.3遗传算法的优势2.2.4遗传算法的不足 2.3讲解本文思路及代码2.4算法执行结果: 三、本文…

基于java的设计模式学习

PS :以作者的亲身来看,这东西对于初学者来说有用但不多,这些东西,更像一种经验的总结,在平时开发当中一般是用不到的,因此站在这个角度上用处不大。 1.工厂模式 1.1 简单工厂模式 我们把new 对象逻辑封装…

SpringBoot缓存注解使用

背景 除了 RedisTemplate 外, 自Spring3.1开始,Spring自带了对缓存的支持。我们可以直接使用Spring缓存技术将某些数据放入本机的缓存中;Spring缓存技术也可以搭配其他缓存中间件(如Redis等)进行使用,将某些数据写入到缓存中间件…

【Linux】信号(signal)

目录 一、信号概念: 二、信号的常见状态: 信号递达: 信号未决: 阻塞信号: 忽略信号: 信号在内核中的表示: 三、信号相关函数: sigset_t (类型)&…

2024.7.19 作业

1.链表的排序 int list_sort(NodePtr L) {if(NULLL || L->len<1){printf("排序失败");return -1;}int lenL->len1;NodePtr p;int i,j;for( i1;i<len;i){for( j0,pL;j<len-i;j,pp->next){if( p->data > p->next->data ){datatype tp-&…

基于51单片机的步进电机控制系统proteus仿真

地址&#xff1a;https://pan.baidu.com/s/1jFlIJ9I5qxjW8sYKd6vrBQ?pwd9d6q 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMic…

阿里开源的音频模型_原理与实操

英文名称: FunAudioLLM: Voice Understanding and Generation Foundation Models for Natural Interaction Between Humans and LLMs 中文名称: FunAudioLLM: 人与LLMs之间自然互动的语音理解和生成基础模型 论文地址: http://arxiv.org/abs/2407.04051v3 相关论文&#xff1a;…

1、springboot3 vue3开发平台-后端-项目构建

文章目录 1. 创建项目1.1 前置环境条件1.2 项目创建 2. 模块配置2.1 父工程配置概述2.2 配置启动模块2.3 父工程相关依赖管理 1. 创建项目 1.1 前置环境条件 idea2023, jdk17 1.2 项目创建 创建父工程并删除不需要的文件目录&#xff1a; 右键父工程依次创建其他模块 最…

Java | Leetcode Java题解之第260题只出现一次的数字III

题目&#xff1a; 题解&#xff1a; class Solution {public int[] singleNumber(int[] nums) {int xorsum 0;for (int num : nums) {xorsum ^ num;}// 防止溢出int lsb (xorsum Integer.MIN_VALUE ? xorsum : xorsum & (-xorsum));int type1 0, type2 0;for (int n…

vue2.0结合使用 el-scrollbar 和 v-for实现一个横向滚动的元素列表,并且能够自动滚动到指定元素(开箱即用)

效果图&#xff1a; 代码&#xff1a; <div class"gas-mode-item-body"><el-scrollbar style"width: 300px;height: 100%;" wrap-style"overflow-y:hidden" ref"scrollbarRef"><div style"display: flex&quo…

python-最小公倍数(PythonTip)

[题目描述] 编写一个程序&#xff0c;找出能被从1到给定数字n&#xff08;包括n&#xff09;的所有数字整除的最小正数(即最小公倍数)。 定义函数smallest_multiple()的函数&#xff0c;参数为n。 在函数内&#xff0c;返回能被从1到给定数字n&#xff08;包括n&#xff09;的…

珈和科技完成全国首个农险服务类数据产品入表,实现数据资产化

近日&#xff0c;珈和科技与东湖大数据合作&#xff0c;完成全国首个保险服务类数据产品入表&#xff0c;标志着我国商业卫星遥感应用领域迈出了数据资产化的关键一步。 此次入表的数据产品为“华北农业保险服务数据集数据产品”&#xff0c;是珈和科技融合卫星遥感与无人机等…

数据结构----栈

前言 Hello&#xff0c;小伙伴们&#xff0c;今天我们继续数据结构的学习&#xff0c;前面我们学习了顺序表和链表的实现&#xff0c;今天的栈知识也是和前面的知识相辅相成。 如果你喜欢我的内容的话&#xff0c;就请不要吝啬自己手中的三连哟&#xff0c;万分感谢&#xff…