89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令

news2024/11/28 23:41:44

本次讲解要点:
** Set相关命令:是指value中的数据类型**

启动redis服务器:
打开小黑窗:
C:\Users\JH>e:
E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin
E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe redis.windows.conf

启动redis客户端:
小黑窗:redis-cli

★ Redis的数据类型(都是针对Redis的value而言)

redis和map差不多。
Map 只能保存在内存中,
redis可以保存在磁盘。

Redis的key都是String

▲ value支持如下5种数据类型:

String: 最基本的数据类型,可保存任何的数据。
List: 元素是String的有序集合,集合内的元素可以重复。
Set: 元素是String的无序集合,集合内的数据不能重复。
Zset: 元素是String的有序集合,集合内的数据不能重复。
Hash: 也是key-value集合(类似Java的Map),key和value都是String类型的数据。这种类型主要用于保存对象。

Redis为不同数据类型提供了不同的操作命令,因此特定类型的数据需要使用对应类型的命令来执行操作。

★ ZSet相关的命令

zset 和 set 的区别:
ZSet相当于Set的增强版,它会每个元素都分配一个double类型的score(分数),并按该score对集合中元素排序。有点类似于TreeSet。
ZSet集合内元素不允许重复,但元素的score是可以重复的。
分数大的排前面

ZADD key score member [score member …]: 向ZSet添加一个或多个元素,或更新已有的元素的score。

ZCARD key: 返回key对应的ZSet中元素的个数

ZCOUNT key min max: 返回ZSet的score位于min到max之间的元素个数。

ZDIFF numkeys key [key …] [WITHSCORES]: 计算给定ZSet之间的差值。该命令要Redis 6.2+才可用。

ZDIFFSTORE destination numkeys key [key …]: ZDIFF的存储版本,
将给定ZSet的差值保存到destination中。该命令要Redis 6.2+才可用。

ZINCRBY key increment member: 将memeber元素的score增加increment。
随着元素的score的改变,ZSet中元素的顺序也会随之改变。

ZINTER numkeys key [key …]: 计算给定ZSet的交集。该命令要Redis 6.2+才可用。

ZINTERSTORE destination numkeys key [key …]: ZINTER的存储版本,
将给定ZSet的交集保存到destination中。交集中元素的score是相同元素的score之和。

ZLEXCOUNT key min max: 返回ZSet内按字典排序时从min到max之间所有元素的个数。
一般用于对ZSet中所有元素的score都相等时进行处理。
min:可支持的写法: - 代表最小值。[字符串, 代表包含边界。(字符串,代表不包含边界。

  max:可支持写法:+代表最大值,[字符串, 代表包含边界。(字符串,代表不包含边界。

提示:当向ZSet添加多个score相等的元素时,ZSet就会使用字典顺序(英文字典中字母的排序方式)对这些元素排序,
      此时就可按字典顺序来获取指定范围内元素的个数。

ZPOPMAX key [count]: 弹出ZSet中分数最大的元素。

BZPOPMAX key [key…] timeout: ZPOPMAX的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。

ZPOPMIN key [count]: 弹出ZSet中分数最小的元素。

BZPOPMIN key [key …] timeout: ZPOPMIN的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。

ZRANGE key start stop [WITHSCORES]: 返回ZSet内从start索引到stop索引范围内的元素(及score)。
索引支持负数,负数表示从最后面开始,比如-1代表最后一个元素。
类似于List的LRange命令。

ZRANGEBYLEX key min max [LIMIT offset count]: 返回ZSet内按字典排序时从min到max之间的所有元素。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 返回ZSet内分数从min到max之间的所有元素。

ZRANK key member: 返回ZSet内指定元素的索引。score最小的索引是0。

ZREM key member [member …]: 删除ZSet内一个或多个元素。

ZREMRANGEBYLEX key min max: 按字典排序删除ZSet从min到max之间的所有元素。

ZREMRANGEBYRANK key start stop: 删除ZSet内从start索引到stop索引之间的所有元素。

ZREMRANGEBYSCORE key min max: 删除ZSet内score位于min到max之内的所有元素。

ZREVRANGE key start stop [WITHSCORES]: ZRANGE的反向版本。

ZREVRANGEBYLEX key max min [LIMIT offset count]: ZRANGEBYLEX的反向版本。

ZREVRANGEBYSCORE key max min [WITHSCORES]: ZRANGEBYSCORE的反向版本。

ZREVRANK key member: ZRANK的反向版本。score最大的反向索引反而是0。

ZSCORE key member: 获取指定元素的score。

ZUNION numkeys key [key …]: 计算给定ZSet的并集。该命令要Redis 6.2+才可用。

ZUNIONSTORE destination numkeys key [key …]: ZUNION的存储版本,将给定ZSet的并集保存到destination中。

ZMSCORE key member [member …]: 获取多个元素的score,该命令要Redis 6.2+才可用。

ZSCAN key cursor [MATCH pattern] [COUNT count]:
使用cursor遍历key对应的ZSet。pattern指定只遍历匹配pattern的元素。

  注意:实际上该count选项根本不起作用。因为redis的设计在遍历Zet、Hash,总会将所有的元素在一次遍历时就返回出来。

【注意点:】:在Zset中,将元素的位置索引称为RANK,排在第一位的(score最小的元素)的RANK是0。

演示:

ZADD key score member [score member …]: 向ZSet添加一个或多个元素,或更新已有的元素的score。
在这里插入图片描述

ZCARD key: 返回key对应的ZSet中元素的个数
在这里插入图片描述

ZCOUNT key min max: 返回ZSet的score位于min到max之间的元素个数。
在这里插入图片描述

ZINCRBY key increment member: 将memeber元素的score增加increment。
随着元素的score的改变,ZSet中元素的顺序也会随之改变。
就是给某个元素增加分数在这里插入图片描述

ZINTERSTORE destination numkeys key [key …]: ZINTER的存储版本,
将给定ZSet的交集保存到destination中。交集中元素的score是相同元素的score之和。

这里的 numkeys 就是如果是两个集合要进行查询交集的部分,那么这个 numkeys 就要写为 2,
3个zset集合要查交集,那么numkeys就是3

在这里插入图片描述

在这里插入图片描述

ZLEXCOUNT key min max: 返回ZSet内按字典排序时从min到max之间所有元素的个数。
注意点:一般用于对ZSet中 所有元素的score都相等 时进行处理

min:可支持的写法: - 代表最小值。[ 字符串, 代表包含边界。(字符串,代表不包含边界。
max:可支持写法:+代表最大值,[ 字符串, 代表包含边界。(字符串,代表不包含边界。

提示:
当向ZSet添加多个score相等的元素时,
ZSet就会使用 字典顺序(字典顺序:英文字典中字母的排序方式)对这些元素排序,
此时就可按字典顺序来获取指定范围内元素的个数。

在这里插入图片描述
ZPOPMAX key [count]: 弹出ZSet中分数最大的元素。并回显

在这里插入图片描述
BZPOPMAX key [key…] timeout: ZPOPMAX的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
在这里插入图片描述

ZPOPMIN key [count]: 弹出ZSet中分数最小的元素。
BZPOPMIN key [key …] timeout: ZPOPMIN的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
在这里插入图片描述

ZRANGE key start stop [WITHSCORES]: 返回ZSet内从start索引到stop索引范围内的元素(及score)。
索引支持负数,负数表示从最后面开始,比如-1代表最后一个元素。
类似于List的LRange命令。
在这里插入图片描述

ZRANGEBYLEX key min max [LIMIT offset count]: 返回ZSet内按字典排序时从min到max之间的所有元素。
提示:
当向ZSet 添加多个score相等的元素时,
ZSet就会使用 字典顺序(字典顺序:英文字典中字母的排序方式)对这些元素排序,
此时就可按字典顺序来获取指定范围内元素的个数。
在这里插入图片描述

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 返回ZSet内分数从min到max之间的所有元素。
在这里插入图片描述

ZRANK key member: 返回ZSet内指定元素的索引。score最小的索引是0。
在这里插入图片描述

ZREM key member [member …]: 删除ZSet内一个或多个元素。
在这里插入图片描述

ZREMRANGEBYLEX key min max: 按字典排序删除ZSet从min到max之间的所有元素。
在这里插入图片描述

ZREMRANGEBYRANK key start stop: 删除ZSet内从start索引到stop索引之间的所有元素。
在这里插入图片描述

ZREMRANGEBYSCORE key min max: 删除ZSet内score位于min到max之内的所有元素。
在这里插入图片描述

ZSCORE key member: 获取指定元素的score。
在这里插入图片描述

ZSCAN key cursor [MATCH pattern] [COUNT count]:
使用cursor遍历key对应的ZSet。pattern指定只遍历匹配pattern的元素。

注意:实际上该count选项根本不起作用。因为redis的设计在遍历Zet、Hash,总会将所有的元素在一次遍历时就返回出来。

【注意点:】:在Zset中,将元素的位置索引称为RANK,排在第一位的(score最小的元素)的RANK是0。
在这里插入图片描述

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

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

相关文章

Android-Q 对 startActivity() 做了限制,怎么适配?

一. Q 禁用后台启动 Activity 今天来聊聊“Android Q 中后台禁止启动 Activity 对现有国内 App 中启动页设计的影响”这个话题,再聊聊 Android Q 限制后台启动 Activity 的具体细节。 有人可能会觉得 P 还没用上,Q 还远着。如果只是对于普通用户来说&a…

为什么要使用虚拟机?VMware安装使用

前言 大家好,本文是讲述了为什么需要使用虚拟机、使用虚拟机的好处,以及如何在Windows系统中安装VMware。希望对大家有所帮助~ 目录 前言一、为什么要安装使用虚拟机?1.1、什么是虚拟机?1.2、虚拟机的核心组件1.3、使用虚拟机的好…

【RabbitMQ】常用消息模型详解

文章目录 AMQP协议的回顾RabbitMQ支持的消息模型第一种模型(直连)开发生产者开发消费者生产者、消费者开发优化API参数细节 第二种模型(work quene)开发生产者开发消费者消息自动确认机制 第三种模型(fanout)开发生产者开发消费者 第四种模型(Routing)开发生产者开发消费者 第五…

网络-fetch

文章目录 前言一、fetch简介优点:缺点: 二、使用getpost进度实现取消请求超时实现 总结 前言 本文主要记录浏览器与服务端网络通讯 fetch 的介绍与使用,将完成get、post、进度、取消请求、和超时请求的功能实现。 一、fetch简介 fetch作为继…

基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2015/CEC2018/CEC2023(MATLAB代码)

一、动态多目标优化问题 1.1问题定义 1.2 动态支配关系定义 二、 基于自适应启动策略的混合交叉动态多目标优化算法 基于自适应启动策略的混合交叉动态多目标优化算法(Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Se…

深度学习(1)---卷积神经网络(CNN)

文章目录 一、发展历史1.1 CNN简要说明1.2 猫的视觉实验1.3 新认知机1.4 LeNet-51.5 AlexNet 二、卷积层2.1 图像识别特点2.2 卷积运算2.3 卷积核2.4 填充和步长2.5 卷积计算公式2.6 多通道卷积 三、池化层 一、发展历史 1.1 CNN简要说明 1. 卷积神经网络(Convolut…

【51单片机编写占空比按秒渐亮与渐暗】2023-10-2

昨天刚在W10上安装CH340驱动,又下载到板子上LCD1602定时器时钟程序,为了调试,调用了一个LED观察控制蜂鸣器按秒响的变量,几经调试才发觉该开发板用的是有源蜂鸣器,不用IO取反操作,直接控制IO的高低电平即可…

手机号码格式校验:@Phone(自定义参数校验注解)

需求 新增接口 和 修改接口 中,手机号码的格式校验是普遍需要的。 在每个手机号码字段上添加正则表达式校验注解来实现校验,重复书写,容易出错;在不同的手机号码字段上,可能使用了不同的校验规则,无法有效…

2023年9月文章一览

2023年9月编程人总共更新了4篇文章: 1.2023年8月文章一览 2.Programming abstractions in C阅读笔记:p144-p160 3.Programming abstractions in C阅读笔记:p161-p165 4.我为什么选择这样一份经常出差的工作 9月份大部分时间在出差&#…

【论文阅读】Prototypical Networks for Few-shot Learning

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、论文摘要方法 二、视频总结 前言 本文结合论文和youtube上的视频[Few-shot learning][2.2] Prototypical Networks: intuition, algorithm, pytorch code来…

Spring Boot中的@Controller使用教程

一 Controller使用方法,如下所示: Controller是SpringBoot里最基本的组件,他的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果。下面通过本文给大家介绍Spr…

Linux shell编程学习笔记5:变量命名规则、变量类型、使用变量时要注意的事项

跟其他的高级开发语言一样,Linux Shell编程中使用的数据也需要保存在变量中。 Shell使用变量来控制其行为,并且可以通过更改变量值来更改Shell和其他程序的行为。 我们先来了解一下变量命令的规则、变量类型和使用变量时要注意的事项。 一、变量命名规…

Redis学习笔记(常用数据类型,发布订阅,事务和锁机制,持久化,集群,雪崩,缓存击穿,分布式锁)

一、NoSQL数据库简介 解决扩展性问题,如果需要对功能进行改变(比如增删功能),用框架有一定的规范要求,无形中解决了扩展性问题。 Redis是一种典型的NoSQL数据库。 NoSQL的基础作用: 1. nginx负载均衡反向…

3. 文档操作

1. 创建文档 1.1 创建一个文档 在相应的索引下面使用_doc创建文档,地址为:http://127.0.0.1:9200/students/_doc,创建一个姓名张三的学生信息: {"姓名":"张三","年级":5,"班级":2,&qu…

MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结

目录 索引使用(下) 覆盖索引与回表查询 思考题 前缀索引 语法 示例 前缀长度 前缀索引的查询流程 单列索引与联合索引 索引设计原则 索引总结 1.索引概述 2.索引结构 3.索引分类 4.索引语法 5.SQL性能分析 6.索引使用 7.索引设计…

ORACLE Redo Log Buffer 重做日志缓冲区机制的设计

最近和朋友包括一些国产数据库的研发人员交流,很多程序员认为 Oracle 已经过时,开源数据库或者他们研发的国产数据库才代表数据库发展的未来。甚至在很多交流会议上拿出自家产品的某一个功能点和 Oracle 对比就觉得已经遥遥领先。 实际上数据库系统的发展…

Spring Cloud Alibaba Nacos 配置中心 (配置持久化与动态刷新) 实战

文章目录 一、配置持久化到DB1. 找到配置文件2. 修改配置文件3. 执行数据库SQL4. 控制台创建配置文件 二、集成Nacos配置中心客户端1. 引入依赖2. 添加配置信息3. 创建配置信息4. 编写测试类5. 运行测试6. 动态刷新配置 一、配置持久化到DB 1. 找到配置文件 找到 nacos 的安装…

C#,数值计算——Ranlim32的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// High-quality random generator using only 32-bit arithmetic.Same conventions /// as Ran.Period is 3.11E37 . Recommended only when 64-bit arithmetic is not /// a…

中国1km土壤特征数据集(2010年)

简介&#xff1a; 中国1km土壤特征数据集&#xff08;2010&#xff09;是基于第二次全国土壤调查的中国1:1000000比例尺土壤图和8595个土壤剖面图&#xff0c;以及美国农业部&#xff08;USDA&#xff09;中国区域土地和气候模拟标准&#xff0c;开发了一个多层土壤粒度分布数…

开源layui前端框架 收款码生成系统源码 多合一收款码生成源码 带50多套UI模板

Layui前端的多合一收款码在线生成系统源码_附多套前端UI模板。 卡特三合一收款码生成系统源码&#xff0c;和收款啦采用一样的原理。 内部多达50多套模板&#xff0c;前端跟付款界面都特别好看。 识别收款码之后会自动加密&#xff0c;非常安全。 一样没有后台&#xff0c;一样…