Redis 7.x 系列【10】数据类型之有序集合(ZSet)
有道无术,术尚可求,有术无道,止于术。
本系列Redis 版本 7.2.5
源码地址:https://gitee.com/pearl-organization/study-redis-demo
文章目录
- 1. 概述
- 2. 常用命令
- 2.1 ZADD
- 2.2 ZCARD
- 2.3 ZSCORE
- 2.4 ZRANGE
- 2.5 ZREVRANGE
- 2.6 ZRANK
- 2.7 ZREM
- 2.8 ZPOPMIN
- 2.9 ZPOPMAX
- 2.10 ZINCRBY
- 2.11 集合运算
- 3. 应用场景
1. 概述
ZSet
是一种有序集合类型,可以存储不重复的元素,并且给每个元素赋予一个 double
类型的排序权重值(score
)。
2. 常用命令
ZSet
相关所有命令:
命名 | 描述 |
---|---|
BZMPOP | 按照指定的排序方式推出多个队列中指定数量的元素 |
BZPОPMAX | ZPOPMAX 的阻塞版本,作用相同,只是在目标集合中没有元素时会阻塞,timeout 参数指定了过期时间 (0 表示永不超时) |
BZPOPMIN | 与 ZPOPMAX 一样,只是返回 score 最小的 |
ZADD | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZCARD | 获取有序集合的成员数 |
ZCOUNT | 计算在有序集合中指定区间分数的成员数 |
ZDIFF | 返回集合之间的差集 |
ZDIFFSTORE | 返回集合之间的差集,并将结果存储在另一个新的有序集合中 |
ZINCRBY | 有序集合中对指定成员的分数加上增量 increment |
ZINTER | 用于计算多个有序集合的交集 |
ZINTERCARD | 用于计算多个有序集合的交集,并返回成员个数 |
ZINTERSTORE | 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中 |
ZLEXCOUNT | 计算有序集合中指定区间内成员的数量 |
ZMPOP | 弹出一个或多个成员 |
ZMSCORE | 从有序集合中获取多个成员的分数(score ) |
ZPOPMAX | 用于删除并返回集合中分数(score )最高的一个或多个元素。如果集合为空,则命令不执行任何操作 |
ZPOPMIN | 用于删除并返回集合中分数(score )最低的一个或多个元素。如果集合为空,则命令不执行任何操作 |
ZRANDMEMBER | 随机获取一个或多个元素 |
ZRANGE | 获取指定范围内的成员 |
ZRANGEBYLEX | 根据成员名称的字典顺序来返回有序集合中指定区间的成员。注意是基于成员名称的字典顺序,而不是分数(score )的大小 |
ZRANGEBYSCORE | 返回有序集中指定分数区间内的成员,分数从高到低排序 |
ZRANGESTORE | 绍 返回集合中指定排名范围内的成员,并将结果存储到指定key 中 |
ZRANK | 返回有序集合中指定成员的索引 |
ZREM | 移除有序集合中的一个或多个成员 |
ZREMRANGEBYLEX | 移除有序集合中给定的字典区间的所有成员 |
ZREMRANGEBYRANK | 移除有序集合中给定的排名区间的所有成员 |
ZREMRANGEBYSCORE | 移除有序集合中给定的分数区间的所有成员 |
ZREVRANGE | 返回有序集中指定区间内的成员,通过索引,分数从高到底 |
ZREVRANGEBYLEX | 根据字典范围返回成员,返回的成员顺序是反向的,即从高到低的字典顺序 |
ZREVRANGEBYSCORE | 返回指定分数范围内的成员,并按照分数从高到低进行排序 |
ZREVRANK | 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 |
ZSCAN | 迭代有序集合中的元素(包括元素成员和元素分值) |
ZSCORE | 返回有序集中,成员的分数值 |
ZUNION | 计算一个或多个有序集的并集 |
ZUNIONSTORE | 计算一个或多个有序集的并集,并存储在新的 key 中 |
2.1 ZADD
ZADD
命令用于将一个或多个元素及其 score
值加入到有序集 key
中。
注意事项:
- 如果某个
member
已经是有序集的成员,那么更新这个member
的score
值,并通过重新插入这个member
元素,来保证该member
在正确的位置上。 - 如果有序集合
key
不存在,则创建一个空的有序集并执行ZADD
操作。 - 当
key
存在但不是有序集类型时,返回一个错误。 score
值可以是整数值或双精度浮点数,score
可为正也可以为负。- 获取一个成员当前的分数可以使用
ZSCORE
命令,也可以用它来验证成员是否存在。
基本语法:
ZADD key [NX|XX] [CH] [INCR] score member [score member …]
添加单个元素:
redis> ZADD page_rank 10 google.com
(integer) 1
添加多个元素:
redis> ZADD page_rank 9 baidu.com 8 redis.com.cn
(integer) 2redis> ZRANGE page_rank 0 -1 WITHSCORES
1) "redis.com.cn"
2) "8"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"
添加已存在元素,且 score
值不变:
redis> ZADD page_rank 10 google.com
(integer) 0redis> ZRANGE page_rank 0 -1 WITHSCORES # 没有改变
1) "redis.com.cn"
2) "8"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"
添加已存在元素,但是改变 score
值:
redis> ZADD page_rank 6 redis.com.cn
(integer) 0redis> ZRANGE page_rank 0 -1 WITHSCORES # redis.com.cn 元素的 score 值被改变
1) "redis.com.cn"
2) "6"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"
ZADD
命令支持参数,参数位于 key
名字和第一个 score
参数之间(GT
、LT
和 NX
三者互斥不能同时使用):
XX
: 仅更新存在的成员,不添加新成员。NX
:不更新存在的成员,只添加新成员。LT
: 更新新的分值比当前分值小的成员,不存在则新增。GT
: 更新新的分值比当前分值大的成员,不存在则新增。CH
:返回变更成员的数量。变更的成员是指新增成员 和score
值更新的成员,命令指明的和之前score
值相同的成员不计在内。 在通常情况下,`ZADD 返回值只计算新添加成员的数量。INCR
:ZADD
使用该参数与ZINCRBY
功能一样。一次只能操作一个score-element
对。
Redis
有序集合的分数使用双精度 64
位浮点数表示。在 Redis
所支持的平台上,称为 IEEE 754 floating point number
,它能包括的整数范围是-(2^53)
到 +(2^53)
。或者说是-9007199254740992
到 9007199254740992
。更大的整数在内部用指数形式表示,所以,如果为分数设置一个非常大的整数,你得到的是一个近似的十进制数。
有序集合按照分数以递增的方式进行排序。相同的成员(member
)只存在一次,有序集合不允许存在重复的成员。 分数可以通过 ZADD
命令进行更新或者也可以通过 ZINCRBY
命令递增来修改之前的值,相应的他们的排序位置也会随着分数变化而改变。
有序集合里面的成员是不能重复的都是唯一的,但是,不同成员间有可能有相同的分数。当多个成员有相同的分数时,他们将是按字典排序(ordered lexicographically
)(仍由分数作为第一排序条件,然后,相同分数的成员按照字典序排序)。
字典顺序排序用的是二进制,它比较的是字符串的字节数组。如果用户将所有元素设置相同分数(例如 0
),有序集合里面的所有元素将按照字典顺序进行排序,范围查询元素可以使用 ZRANGEBYLEX
命令(注:范围查询分数可以使用ZRANGEBYSCORE
命令)。
2.2 ZCARD
ZCARD
命令用于返回有序集的成员个数,当 key
不存在时,返回 0 。
基本语法:
ZCARD key
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2
2.3 ZSCORE
ZSCORE
命令用于返回有序集 key
.中成员 member
的分数,返回值为字符串格式的双精度浮点数。如果有不存在的 member
,或者 key
不存在,返回 nil
。
基本语法:
ZSCORE key member
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZSCORE myzset "one"
"1"
2.4 ZRANGE
ZRANGE
命令返回有序集中指定区间内的成员,其中成员的按分数值递增(从小到大)来排序,具有相同分数值的成员按字典序排列。
注意事项:
- 如果你需要成员按值递减来排列,请使用
ZREVRANGE
命令。 - 下标参数
start
和stop
都以0
为底,也就是说,以0
表示有序集第一个成员,以1
表示有序集第二个成员,以此类推。 - 也可以使用负数下标,以
-1
表示最后一个成员,-2
表示倒数第二个成员,以此类推。 start
和stop
都是包含在内的区间,因此例如ZRANGE myzset 0 1
将会返回有序集合的第一个和第二个元素。- 超出范围的索引不会产生错误。 如果
start
参数的值大于有序集合中的最大索引,或者start > stop
,将会返回一个空列表。 如果stop
的值大于有序集合的末尾,会将其视为有序集合的最后一个元素。 - 可以传递
WITHSCORES
选项,以便将元素的分数与元素一起返回。这样返回的列表将包含value1,score1,...,valueN,scoreN
,而不是value1,...,valueN
。 客户端类库可以自由地返回更合适的数据类型(建议:具有值和得分的数组或元组)。
基本语法:
ZRANGE key start stop [WITHSCORES]
简单示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGE myzset 0 -1
1) "one"
2) "two"
3) "three"
redis> ZRANGE myzset 2 3
1) "three"
redis> ZRANGE myzset -2 -1
1) "two"
2) "three"
WITHSCORES
示例:
redis> ZRANGE myzset 0 1 WITHSCORES
1) "one"
2) "1"
3) "two"
4) "2"
2.5 ZREVRANGE
ZREVRANGE
命令返回有序集中,指定区间内的成员。其中成员的位置按 score
值递减(从高到低)来排列。除了成员排序相反外,其他方面和 ZRANGE
命令一样。
基本语法:
ZREVRANGE key start stop [WITHSCORES]
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGE myzset 0 -1
1) "three"
2) "two"
3) "one"
redis> ZREVRANGE myzset 2 3
1) "one"
redis> ZREVRANGE myzset -2 -1
1) "two"
2) "one"
2.6 ZRANK
ZRANK
命令返回有序集中成员的排名,其中有序集成员按 score
值从低到高排列。排名从 0
开始,也就是说,分值最低的成员排名为 0
。
基本语法:
ZRANK key member
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANK myzset "three"
(integer) 2
redis> ZRANK myzset "four"
(nil)
2.7 ZREM
ZREM
命令用于从有序集合中删除指定的成员,如果 member
不存在则被忽略。当 key
存在,但是不是有序集合类型时,返回类型错误。
基本语法:
ZREM key member [member ...]
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREM myzset "two"
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "three"
4) "3"
2.8 ZPOPMIN
ZPOPMIN
删除并返回最多 count
个有序集合 key
中最低得分的成员。返回值为删除的元素和分数列表。
注意事项:
- 如未指定,
count
的默认值为1
。 - 指定一个大于有序集合的候选总数的
count
不会产生错误。 - 当返回多个元素时候,得分最低的元素将是第一个元素,然后是分数较高的元素。
基本语法:
ZPOPMIN key [count]
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMIN myzset
1) "one"
2) "1"
2.9 ZPOPMAX
ZPOPMAX
删除并返回最多 count
个有序集合 key
中的最高得分的成员。返回值为删除的元素和分数列表。
注意事项:
- 如未指定,
count
的默认值为1
。 - 指定一个大于有序集合的候选总数的
count
不会产生错误。 - 当返回多个元素时候,得分最高的元素将是第一个元素,然后是分数较低的元素。
基本语法:
ZPOPMAX key [count]
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMAX myzset
1) "three"
2) "3"
2.10 ZINCRBY
ZINCRBY
为有序集 key
的成员 member
的 score
值加上增量 increment
。返回值为以字符串形式表示的成员的新 score
值(双精度浮点数)。
注意事项:
- 当
key
不存在,或member
不是key
的成员时,ZINCRBY key increment member
等同于ZADD key increment member
。 - 当
key
不是有序集类型时,返回"ERR WRONGTYPE Operation against a key holding the wrong kind of value"
。 score
值可以是字符串形式表示的整数值或双精度浮点数。- 可以通过传递一个负数值
increment
,让score
减去相应的值,比如ZINCRBY key -2 member
,就是让member
的score
值减去2
。
基本语法:
ZINCRBY key increment member
示例:
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZINCRBY myzset 2 "one"
"3"
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "one"
4) "3"
2.11 集合运算
和 Set
一样,也支持集合运算:
- 交:
ZINTER
ZINTERCARD
ZINTERSTORE
- 并:
ZUNION
ZUNIONSTORE
- 差:
ZDIFF
ZDIFFSTORE
3. 应用场景
ZSet
在 Set
的基础上增加了分值排序,常用于排行榜场景,比如热搜、成绩排名等。
例如,添加搜索消息,并初始化访问值为 1
:
localhost:0>ZADD msg_rank 1 msg_1
"1"
localhost:0>ZADD msg_rank 1 msg_2
"1"
localhost:0>ZADD msg_rank 1 msg_3
"1"
用户点击消息时,增加访问次数:
"1"
localhost:0>ZINCRBY msg_rank 1 msg_2
"1"
localhost:0>ZINCRBY msg_rank 1 msg_3
"2"
localhost:0>ZINCRBY msg_rank 1 msg_3
"3"
显示热搜前十排行榜:
localhost:0>ZREVRANGE msg_rank 0 9 WITHSCORES1) "msg_3"2) "3"3) "msg_2"4) "1"5) "msg_1"6) "1"
相关文章:
![](https://img-blog.csdnimg.cn/direct/e5dbe6b934e44dfabe33e06b50fad762.png#pic_center)
Redis 7.x 系列【10】数据类型之有序集合(ZSet)
有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 ZADD2.2 ZCARD2.3 ZSCORE2.4 ZRANGE2.5 ZREVRANGE2.6 ZRANK2.7…...
![](https://img-blog.csdnimg.cn/direct/d9cef74ae80e44e9be8c00b6226dc31a.png)
操作系统-文件的物理结构(文件分配方式)
文章目录 总览文件块和磁盘块连续分配顺序访问直接访问(随机访问)为什么连续分配同时支持这两种访问模式? 链接分配隐式链接显示链接小结索引分配链接方案多层索引混合索引小结 总结 总览 文件数据存放在外存中 文件块和磁盘块 文件内通过逻…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot集成jsoup实现html解析
1.什么是jsoup jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据,可操作 HTML 元素、属性、文本。 JSo…...
![](https://www.ngui.cc/images/no-images.jpg)
[240629] 阿里云揭秘其数据中心设计和自研网络,用于大语言模型训练 | Jina AI 发布最新的神经网络重排序模型
目录 阿里云揭秘其数据中心设计和自研网络,用于大语言模型训练Jina AI 发布最新的神经网络重排序模型 阿里云揭秘其数据中心设计和自研网络,用于大语言模型训练 阿里云近日公布了其专为大型语言模型 (LLM) 训练流量而设计的基于以太网的网络设计&#x…...
![](https://img-blog.csdnimg.cn/direct/aec8ae25635c42ef8c5c28f32ccc5111.png)
【Docker0】网络更改
目录 1. 停止docker服务 2. 关闭docker默认桥接网络接口 3. 从系统删除docker0接口 4. 创建一个名为bridge0的新接口 5. 添加ip地址和子网掩码 6. 启用bridge0接口 7. (如果没起来就执行该句) 8. 查看ip 1. 停止docker服务 sudo service docker…...
![](https://img-blog.csdnimg.cn/direct/e77246ab714f430f91455233776b1b62.png)
IDEA中导入Maven项目
IDEA中导入Maven项目 方式1:使用Maven面板,快速导入项目 打开IDEA,选择右侧Maven面板,点击 号,选中对应项目的pom.xml文件,双击即可 说明:如果没有Maven面板,选择 View > Appe…...
![](https://www.ngui.cc/images/no-images.jpg)
px、em、rem、rpx 作用和用法详解
px px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。 PX特点 IE无法调整那些使用px作为单位的字体大小; 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位; Firefox能够调整px和emÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux 常用命令 - dd 【复制及转换文件内容】
简介 dd 命令源自于磁盘复制(disk dump)的缩写,是 Linux 和 Unix 系统中用于转换和复制文件的一个强大工具。它可以在复制过程中进行格式转换,支持不同的块大小,能够直接对硬盘设备进行操作,非常适合进行备…...
![](https://img-blog.csdnimg.cn/img_convert/2528864f7ccdede6fcd01ecc5ffdae55.webp?x-oss-process=image/format,png)
全网唯一免费无水印AI视频工具!
最近Morph Studio开始免费公测!支持高清画质,可以上传语音,同步口型,最重要的是生成的视频没有水印! Morph Studio国内就可以访问,可以使用国内邮箱注册(我用的163邮箱),…...
![](https://img-blog.csdnimg.cn/direct/d5b099a84bb5498a93c3458c609d23a3.png)
kafka(四)消息类型
一、同步消息 1、生产者 同步发送的意思就是,一条消息发送之后,会阻塞当前线程,直至返回 ack。 由于 send 方法返回的是一个 Future 对象,根据 Futrue 对象的特点,我们也可以实现同 步发送的效果,只需在调…...
![](https://img-blog.csdnimg.cn/20190106163945739.jpg#pic_center)
Emacs之显示blame插件:blamer、git-messenger(一百四十四)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
![](https://img-blog.csdnimg.cn/img_convert/7f79d0b5fa72fdefd132c138ed0adfee.webp?x-oss-process=image/format,png)
【10分钟速通webpack,全流程打包,编译,发包,全干货,附代码 】
需求 后端有个nodejs 基础库,用typescript编写,需要发包到代码仓库上,被其它业务引入。这其中就涉及了: 编译, 打包,发包。 工作流速览 前提依赖 webpack主体 npm install --save-dev webpack webpack…...
![](https://www.ngui.cc/images/no-images.jpg)
设计模式深入解析与实例应用
目录 工厂模式1.简单工厂模式2.工厂方法模式3.抽象工厂模式 策略模式责任链模式概述模板方法模式概述单例模式概述 工厂模式 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳实践,旨在将对象的创建过程与使用过程分离,以提高代码的…...
![](https://img-blog.csdnimg.cn/direct/bfdd7864df8d46b892375d9612bba1e2.jpeg)
服务器数据恢复—异常断电导致RAID6阵列中磁盘出现坏扇区的数据恢复案例
服务器存储数据恢复环境: 一台存储中有一组由12块SAS硬盘组建的RAID6磁盘阵列,划分为一个卷,分配给几台Vmware ESXI主机做共享存储。该卷中存放了大量Windows虚拟机,这些虚拟机系统盘是统一大小,数据盘大小不确定&…...
![](https://img-blog.csdnimg.cn/img_convert/888596365316c13c0d33d63fcf619ad2.png)
前端工程化08-新的包管理工具pnpm
1、历史原因解读 pnpm这个东西发布的时间是比较早的,但是在最近一两年的时候才开始流行,甚至是可以说非常的盛行,那么这个包到底是个什么东西的,那么我们先说下,原来的包管理工具到底有那些问题?比如说我们…...
![](https://img-blog.csdnimg.cn/direct/10ff0921c88c4a52a3c617cbef5babd9.png)
章十九、JavaVUE —— 框架、指令、声明周期、Vue-cli、组件路由、Element
目录 一、 框架 ● vue.js 框架 ● 特点 ● Vue 安装 二、 第一个vue程序 ● 创建项目 编辑 ● 导入 vue.js ● 创建vue对象,设置属性,使用模版渲染到页面 介绍 — Vue.js (vuejs.org) 三、 vue指令 ● v-text ● v-html ● v-…...
![](https://img-blog.csdnimg.cn/direct/cc8d0b7ab85146a198d9ac156182a34b.jpeg)
正则表达式阅读理解
这段正则表达式可以匹配什么呢? 超级复杂的一段正则表达式。 ((max|min)\\s*\\([^\\)]*(,[^\\)]*)*\\)|[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z][a-zA-Z0-9]*)?(\\*||%)?|[0-9](\\.[0-9])?|\\([^\\)]*(,[^\\)]*)*\\))(\\s*[-*/%]\\s*([a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z][…...
![](https://www.ngui.cc/images/no-images.jpg)
Apache Calcite Linq4j学习
Lin4j简介 Linq4j是Apache Calcite项目中的一个模块,它提供了类似于LINQ(Language-Integrated Query)的功能,用于在Java中进行数据查询和操作。Linq4j可以将逻辑查询转换为物理查询,支持对集合进行筛选、映射、分组等…...
![](https://img-blog.csdnimg.cn/direct/bbba3acd15a441148d79eb2ce5165e0d.png)
FPGA SATA高速存储设计
今天来讲一篇如何在fpga上实现sata ip,然后利用sata ip实现读写sata 盘的目的,如果需要再速度和容量上增加,那么仅仅需要增加sata ip个数就能够实现增加sata盘,如果仅仅实现data的读写整体来说sata ip设计比较简单,下面…...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL----为什么选择使用MySQL
在我们日常做项目的过程中,不论是个人还是企业,大多数会选择使用MySQL数据库作为后端数据库存储,它到底有什么优势,能够做到如此广为流传呢? 优点 稳定性:MySQL具有良好的稳定性和可靠性,能够保…...
![](https://www.ngui.cc/images/no-images.jpg)
01.音视频小白系统入门(新专栏)
目录 一、基础知识 二、音频 三、视频 四、流媒体服务器 五、收获 音视频技术在远程办公、在线教育、远程医疗等领域的应用广泛。 学习音视频技术有助于提升职业竞争力,满足市场需求。 掌握音视频基础知识对未来发展至关重要,基础不牢会导致后续学习…...
![](https://img-blog.csdnimg.cn/direct/ebd8dd00a9fd4d008c1e53250b721e6b.png)
C++:enum枚举共用体union
enum枚举 C继承C的枚举用法 (1)典型枚举类型定义,枚举变量定义和使用 (2)枚举类型中的枚举值常量不能和其他外部常量名称冲突: 举例1宏定义,举例2另一个枚举 // 定义一个名为Color的枚举类型 enum Color {RED, // 红色,默认值…...
![](https://img-blog.csdnimg.cn/direct/537b5da4163c4bf19054cf7f641e19ad.png#pic_center)
动手学深度学习(Pytorch版)代码实践 -计算机视觉-47转置卷积
47转置卷积 import torch from torch import nn from d2l import torch as d2l# 输入矩阵X和卷积核矩阵K实现基本的转置卷积运算 def trans_conv(X, K):h, w K.shapeY torch.zeros((X.shape[0] h - 1, X.shape[1] w - 1))for i in range(X.shape[0]):for j in range(X.shap…...
![](https://img-blog.csdnimg.cn/img_convert/df927ecd51855b7b9b2ea71429d75065.jpeg)
LinkedIn被封原因和解封方法
对于初识领英和对领英生态规则不熟悉的人来说,很容易造成领英账号被封号(被限制登录)的情况,那么如何才能避免和解决领英帐号被封号(被限制登录)的难题呢? 领英帐号被封号或被限制登录主要会有两类情况。 首先要搞清楚, Linkedi…...
![](https://www.ngui.cc/images/no-images.jpg)
redis sentinel 部署
安装Redis 建议版本不要太低 > 6.2,我这里是redis 7.2.5 curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by/usr/share/keyrings/redis-archive-keyring.gpg] http…...
![](https://img-blog.csdnimg.cn/direct/e59b157d0cb344ee815cef150f3a79f1.png)
spring boot (shiro)+ websocket测试连接不上的简单检测处理
1、用前端连接测试的demo一切正常,但是到了项目中连接不上了 一开始以为是地址错,但是换了apifox测试也是不可以。 2、考虑是shiro进行了拦截了,所以就访问不到了地址,那么就放行。 3、再次用apifox测试,成功了。 当然…...
![](https://www.ngui.cc/images/no-images.jpg)
Jenkins - Python 虚拟环境
Jenkins - Python 虚拟环境 引言Python 虚拟环境创建 Python 虚拟环境安装 virtualenv(可选)创建虚拟环境激活虚拟环境安装依赖包退出虚拟环境(可选)注意 Python 虚拟环境实践 引言 Automation 脚本通常会部署到 Jenkins 上运行&…...
![](https://img-blog.csdnimg.cn/direct/96b2c216cc9249d18435e7a01a75031e.png)
每日一道算法题 面试题 08.08. 有重复字符串的排列组合
题目 面试题 08.08. 有重复字符串的排列组合 - 力扣(LeetCode) Python class Solution:def permutation(self, S: str) -> List[str]:# 以索引记录字符是否用过lelen(S)idx[_ for _ in range(le) ]# 组合得到的字符串combine[]*leans[]# 递归def fu…...
![](https://www.ngui.cc/images/no-images.jpg)
Apache Kylin资源管理全指南:优化你的大数据架构
标题:Apache Kylin资源管理全指南:优化你的大数据架构 摘要 Apache Kylin是一个开源的分布式分析引擎,旨在为大规模数据集提供高性能的SQL查询能力。在Kylin中进行有效的资源管理对于确保查询性能和系统稳定性至关重要。本文将详细介绍如何…...
![](https://img-blog.csdnimg.cn/direct/1508d40ae1dd4c1a8af17333e285445b.png)
计算机网络微课堂(湖科大教书匠)TCP部分
计算机网络微课堂(湖科大教书匠)TCP部分 【计算机网络微课堂(有字幕无背景音乐版)】 TCP的流量控制 一般来说,我们希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收&#…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ 字符串介绍
在C编程中,字符串是非常重要的数据类型之一。字符串用于表示文本信息,处理字符串是许多程序的基本需求。C提供了多种方式来处理字符串,包括C风格的字符串(C-strings)和C标准库中的std::string类。本文将介绍这两种字符…...
![](https://img-blog.csdnimg.cn/direct/a98c300b77c141ec8a26450e07054bc4.png)
[Cloud Networking] BGP
1. AS (Autonomous System) 由于互联网规模庞大,所以网络会被分为许多 自治系统(AS-Autonomous system)。 所属类型ASN名称IPv4 数量IPv6数量运营商ISPAS3356LEVEL3 - Level 3 Parent, LLC, US29,798,83273,301,954,048互联网企业AS15169GO…...
![](https://img-blog.csdnimg.cn/direct/d37c6230281647968485900364b890a4.png)
Typora failed to export as pdf. undefined
变换版本并没有用,调整图片大小没有用 我看到一个博客后尝试出方案 我的方法 解决:从上图中的A4,变为其他,然后变回A4 然后到处成功,Amazing! 参考: Typora 导出PDF 报错 failed to export…...
![](https://img-blog.csdnimg.cn/direct/9d7e827aced244e3b8dd93dc0bde2796.png)
windows 10 安装tcping 使用教程
1 官网下载:tcping下载 2 复制tcping 到win10系统目录C:\Windows\System32 3 tcping 网址测试,可以指定端口 4 tcping 测试端口联通 5 tcping http模式...
![](https://img-blog.csdnimg.cn/direct/3333a1aa25c34a05a96d91f557599220.png)
[leetcode hot 150]第一百二十二题,买卖股票的最佳时机Ⅱ
题目: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大…...
![](https://www.ngui.cc/images/no-images.jpg)
openstack Y版在ubuntu22.04上不能创建超过8个cpu的虚拟机问题解决
环境 openstack 版本: Y版25.2.1 操作系统:ubuntu22.04 问题 创建16 vcpu的虚拟机,报错: Failed to build and run instance: libvirt.libvirtError: error from service: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs…...
![](https://img-blog.csdnimg.cn/direct/8a8481b0d3d440cf8038bfa9ff8f87c3.png)
全国31省细分产品出口数据集(2002-2022年)
数据简介:整理全国31个省直辖市自治区按hs码分的22类细分产品的出口数据,只包含22类的细分,不包含更细的类目。可用来计算出口产品质量,出口产品技术复杂度等指标,数据区间为2002-2022年。 数据名称:31省细…...
![](https://img-blog.csdnimg.cn/direct/c29cf81c3bcc4485ac4741636e9dc4cf.png)
1,Windows-本地Linux 系统(WSL)
目录 第一步电脑设置 第二步安装Ubuntu 第三文件传递 开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arc…...
![](https://img-blog.csdnimg.cn/direct/e3124e76497045a0a2e7e55c62092185.png)
K8S 角色/组件及部署方式的简单概述
1.宏观架构图 2.角色详情 2.1 Master(Controller Plane) 早期是叫 Master 节点,后期改名为 Controller Plane,负责整个集群的控制和管理 Master 不会干活的(当然你让它干也是会干的,涉及到污点容忍),而是起到访问入口ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
堆【模板】小根堆堆【模板】大根堆(回)
目录 堆【模板】小根堆 题目描述1 输入1 输出1 样例输入 1 样例输出 1 提示1 代码1 堆【模板】大根堆 题目描述2 输入 输出 样例输入2 样例输出2 提示2 代码2 堆【模板】小根堆 题目描述1 初始小根堆为空,我们需要支持以下3种操作: 操作…...
![](https://img-blog.csdnimg.cn/direct/629dd8855e754aa7ac3a0d248e220799.png)
【JavaScript】JavaScript简介
希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 JavaScript入门(1)————JavaScript简介开篇说明一、什么是JavaScript二、JavaScript的使用2.1 开发工具的选择…...
![](https://i-blog.csdnimg.cn/direct/0b6e4c3db4834cdab83b3180741b2d03.png#pic_center)
pg_rman:备份和恢复管理工具#postgresql培训
pg_rman 是 PostgreSQL 的在线备份和恢复工具。 pg_rman 项目的目标是提供一种与 pg_dump 一样简单的在线备份和 PITR 方法。此外,它还为每个数据库集群维护一个备份目录。用户只需一个命令即可维护包括存档日志在内的旧备份。 #PG培训#PG考试#postgresql考试#pos…...
![](https://img-blog.csdnimg.cn/direct/7326c7b7a0ad40b5a25fb5f39b13918d.png)
【小学期】常用基于Swing的七个静态界面
示例1:基本的带按钮和标签的界面 import javax.swing.*; import java.awt.*;public class SimpleSwingApp1 {public static void main(String[] args) {JFrame frame new JFrame("Simple Swing App 1");frame.setDefaultCloseOperation(JFrame.EXIT_ON_C…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaScript高级程序设计(第四版)--学习记录之迭代器与生成器(上)
什么是迭代? 迭代的意思是按照顺序反复多次执行一段程序。循环是迭代机制的基础,因为它可以指定迭代的次数,以及每次迭代要执行的操作。 迭代器模式 迭代器模式描述了一个方案,可以把有些结构称为“可迭代对象” ,这些…...
![](https://www.ngui.cc/images/no-images.jpg)
51单片机第9步_结构和联合
本章重点学习结构和联合。 //结构和联合应用举例 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <stdio.h> //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf();向串口发送一串字节; /…...
![](https://www.ngui.cc/images/no-images.jpg)
lua5.3.4的Linux的库文件下载地址
从这个链接选lua5.3.4 Lua Binaries (sourceforge.net) 进入-> 这个页面 LuaBinaries - Browse /5.3.4/Linux Libraries at SourceForge.net 之后就可以下载了。...
![](https://img-blog.csdnimg.cn/img_convert/60becea130fb36eb220af523321c0f51.jpeg)
网盘挂载系统-知识资源系统-私域内容展示系统
系统介绍: 存储:一共支持约30款云盘存储,其中包括主流的(百度网盘、阿里云盘、夸克云盘、迅雷云盘、蓝奏云、天翼云盘),部分展示 以及特别的(一刻相册、对象存储、又拍云存储、SFTP、MEGA 网盘…...
![](https://img-blog.csdnimg.cn/img_convert/f7addd8b598d4b45a1b10ae8439bfbb7.jpeg)
水位自动监测摄像机
随着科技的不断进步,水位自动监测摄像机作为现代智能监控技术的重要应用,正在广泛应用于水利工程、防洪管理和环境监测等领域,显著提升了监测效率和数据准确性。水位自动监测摄像机利用高精度摄像头和先进的图像处理技术,能够实时…...
![](https://img-blog.csdnimg.cn/direct/e2faaeba2a164ef5862f8124936e4d8a.png)
基于SSM+Jsp的疫情居家办公OA系统
开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…...
![](https://img-blog.csdnimg.cn/direct/2b3dd52682c64ebc97bde3d1c8ff2d41.png)
phpstorm2024代码总是提示“no usages”或者“无用法”解决办法
问题:phpstorm2024使用时,总是会提示无用法,如果没有安装中文语言包的情况下会提示:no usages,如果想关闭怎么办? 编译器右上角点击齿轮进入设置,按照下图的方法点击即可关闭。或者在编译器的“…...
![](https://img-blog.csdnimg.cn/direct/da60d5c07c0b400283ca1369dd6d5753.png)
自动驾驶水泥搅拌车在梁场的应用(下)
自动驾驶水泥搅拌车在梁场的应用(下) 北京渡众机器人科技有限公司的自动驾驶水泥搅拌车在梁场(也称为预制梁场)的应用可以带来多方面的优势和效益: 1. 自动化搅拌和运输 在梁场中,通常需要大量的混凝土搅…...
![](https://i-blog.csdnimg.cn/direct/b2d6ab5461ef41e79a2925764573ac52.png#pic_center)
Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method--论文笔记
论文笔记 资料 1.代码地址 https://github.com/iBelieveCJM/pseudo_label-pytorch 2.论文地址 3.数据集地址 论文摘要的翻译 本文提出了一种简单有效的深度神经网络半监督学习方法。基本上,所提出的网络是以有监督的方式同时使用标记数据和未标记数据来训练的…...
![](https://i-blog.csdnimg.cn/direct/6a341c8dd96d43aa89920ac0f0568767.png)
网络基础:IS-IS协议
IS-IS(Intermediate System to Intermediate System)是一种链路状态路由协议,最初由 ISO(International Organization for Standardization)为 CLNS(Connectionless Network Service)网络设计。…...
![](https://img-blog.csdnimg.cn/direct/f9324b2f3dba4f6cba1405b146f152ce.png)
源代码防泄漏之反向沙箱方案的经验分享
反向沙箱(Reverse Sandbox)是一种安全技术,主要用于检测和分析恶意软件的行为。与传统沙箱不同,反向沙箱的重点在于模拟恶意软件的预期运行环境,以诱导恶意软件展示其真实行为。这种技术可以帮助安全专家更深入地理解恶…...
![](https://img-blog.csdnimg.cn/img_convert/a2c60044a9f9c434674cce7beb6ed304.png)
短视频文案提取神器怎么提取抖音视频文案!
很多编导以及视频内容创作者为了提高自己的工作效率还会使用视频转文字提取神器,我们都清楚短视频领域每个平台人群熟悉都有所不同,在分发内容的时候也会调整内容已符合平台属性。 短视频文案提取神器怎么提取抖音视频文案 短视频常见的平台有抖音、西瓜…...
![](https://www.ngui.cc/images/no-images.jpg)
计算机大方向的选择
选专业要了解自己的兴趣所在。 即想要学习什么样的专业,如果有明确的专业意向,就可以有针对性地选择那些专业实力较强的院校。 2.如果没有明确的专业意向,可以优先考虑一下院校。 确定一下自己想要选择综合性院校还是理工类院校或是像财经或者…...
![](https://www.ngui.cc/images/no-images.jpg)
领克07EM-P,一款以豪华舒适为核心理念的汽车,好车值得买
领克07EM-P,一款以豪华舒适为核心理念的汽车,将百万豪车的享受带入了每一个驾驶者的生活。领克07不仅拥有豪华的座椅,真皮包装,还具有加热、通风、按摩等功能,让你在驾驶的过程中享受到无与伦比的舒适感。首先,领克07EM-P的座椅设计充满了人性化的考量。豪华的真皮包装,…...
![](https://www.ngui.cc/images/no-images.jpg)
威兰达卖15.38万元,2.0L/2.5L,油耗5.7L
念寒记得不久前,有好几位车友问过我关于丰田威兰达的问题,其中最关心的就是这款车会不会降价促销,毕竟现在的合资燃油车确实不太好卖,所以我估计还有很多车友都是这样的一个想法。这不,千等万等降价终于被你们给等到了。近日,广汽丰田专门针对对威兰达推出了一项重磅优惠…...
![](https://img-blog.csdnimg.cn/direct/3fc913b5e8524735a14fe7dfbff94572.png)
采用Java+ SpringBoot+ IntelliJ+idea开发的ADR药物不良反应监测系统源码
采用Java SpringBoot IntelliJidea开发的ADR药物不良反应监测系统源码 ADR药物不良反应监测系统有哪些应用场景? ADR药物不良反应监测系统有哪些应用场景? ADR药物不良反应监测系统具有广泛的应用场景,以下是一些主要的应用场景:…...
![](https://img-blog.csdnimg.cn/direct/d1fd49fd46184cc2a2ac6c0528000550.png)
全局配置-案例:配置tabBar
一、需求:实现如图所示的tabBar效果 二、实现步骤: 1.拷贝图标资源 把image文件夹拷贝到小程序项目根目录中 图片中包含-active的是选中之后的图标 图片中不包含-active的是默认图标 2.新建3个对应的tab页面 3.配置tabBar选项 (1…...
![](https://img-blog.csdnimg.cn/direct/4760e6999c4b46caa1f3269e190f2d68.png)
Java中的ORM框架——myBatis
一、什么是ORM ORM 的全称是 Object Relational Mapping。Object代表应用程序中的对象,Relational表示的是关系型数据库,Mapping即是映射。结合起来就是在程序中的对象和关系型数据库之间建立映射关系,这样就可以用面向对象的方式,…...
![](https://www.ngui.cc/images/no-images.jpg)
vs code中编写c++基本使用以及问题总结
vs code基本使用以及总结 launch.json作用 这个文件配置了调试器的设置,允许你定义如何启动和调试你的程序。这包括配置执行路径、传递给程序的参数、环境变量以及特定语言或框架的调试器选项。 常用配置 "version": "0.2.0": 这是配置文件…...