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"
相关文章:
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…...
操作系统-文件的物理结构(文件分配方式)
文章目录 总览文件块和磁盘块连续分配顺序访问直接访问(随机访问)为什么连续分配同时支持这两种访问模式? 链接分配隐式链接显示链接小结索引分配链接方案多层索引混合索引小结 总结 总览 文件数据存放在外存中 文件块和磁盘块 文件内通过逻…...
Spring Boot集成jsoup实现html解析
1.什么是jsoup jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据,可操作 HTML 元素、属性、文本。 JSo…...
[240629] 阿里云揭秘其数据中心设计和自研网络,用于大语言模型训练 | Jina AI 发布最新的神经网络重排序模型
目录 阿里云揭秘其数据中心设计和自研网络,用于大语言模型训练Jina AI 发布最新的神经网络重排序模型 阿里云揭秘其数据中心设计和自研网络,用于大语言模型训练 阿里云近日公布了其专为大型语言模型 (LLM) 训练流量而设计的基于以太网的网络设计&#x…...
【Docker0】网络更改
目录 1. 停止docker服务 2. 关闭docker默认桥接网络接口 3. 从系统删除docker0接口 4. 创建一个名为bridge0的新接口 5. 添加ip地址和子网掩码 6. 启用bridge0接口 7. (如果没起来就执行该句) 8. 查看ip 1. 停止docker服务 sudo service docker…...
IDEA中导入Maven项目
IDEA中导入Maven项目 方式1:使用Maven面板,快速导入项目 打开IDEA,选择右侧Maven面板,点击 号,选中对应项目的pom.xml文件,双击即可 说明:如果没有Maven面板,选择 View > Appe…...
px、em、rem、rpx 作用和用法详解
px px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。 PX特点 IE无法调整那些使用px作为单位的字体大小; 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位; Firefox能够调整px和emÿ…...
Linux 常用命令 - dd 【复制及转换文件内容】
简介 dd 命令源自于磁盘复制(disk dump)的缩写,是 Linux 和 Unix 系统中用于转换和复制文件的一个强大工具。它可以在复制过程中进行格式转换,支持不同的块大小,能够直接对硬盘设备进行操作,非常适合进行备…...
全网唯一免费无水印AI视频工具!
最近Morph Studio开始免费公测!支持高清画质,可以上传语音,同步口型,最重要的是生成的视频没有水印! Morph Studio国内就可以访问,可以使用国内邮箱注册(我用的163邮箱),…...
kafka(四)消息类型
一、同步消息 1、生产者 同步发送的意思就是,一条消息发送之后,会阻塞当前线程,直至返回 ack。 由于 send 方法返回的是一个 Future 对象,根据 Futrue 对象的特点,我们也可以实现同 步发送的效果,只需在调…...
Emacs之显示blame插件:blamer、git-messenger(一百四十四)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
【10分钟速通webpack,全流程打包,编译,发包,全干货,附代码 】
需求 后端有个nodejs 基础库,用typescript编写,需要发包到代码仓库上,被其它业务引入。这其中就涉及了: 编译, 打包,发包。 工作流速览 前提依赖 webpack主体 npm install --save-dev webpack webpack…...
设计模式深入解析与实例应用
目录 工厂模式1.简单工厂模式2.工厂方法模式3.抽象工厂模式 策略模式责任链模式概述模板方法模式概述单例模式概述 工厂模式 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳实践,旨在将对象的创建过程与使用过程分离,以提高代码的…...
服务器数据恢复—异常断电导致RAID6阵列中磁盘出现坏扇区的数据恢复案例
服务器存储数据恢复环境: 一台存储中有一组由12块SAS硬盘组建的RAID6磁盘阵列,划分为一个卷,分配给几台Vmware ESXI主机做共享存储。该卷中存放了大量Windows虚拟机,这些虚拟机系统盘是统一大小,数据盘大小不确定&…...
前端工程化08-新的包管理工具pnpm
1、历史原因解读 pnpm这个东西发布的时间是比较早的,但是在最近一两年的时候才开始流行,甚至是可以说非常的盛行,那么这个包到底是个什么东西的,那么我们先说下,原来的包管理工具到底有那些问题?比如说我们…...
章十九、JavaVUE —— 框架、指令、声明周期、Vue-cli、组件路由、Element
目录 一、 框架 ● vue.js 框架 ● 特点 ● Vue 安装 二、 第一个vue程序 ● 创建项目 编辑 ● 导入 vue.js ● 创建vue对象,设置属性,使用模版渲染到页面 介绍 — Vue.js (vuejs.org) 三、 vue指令 ● v-text ● v-html ● v-…...
正则表达式阅读理解
这段正则表达式可以匹配什么呢? 超级复杂的一段正则表达式。 ((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][…...
Apache Calcite Linq4j学习
Lin4j简介 Linq4j是Apache Calcite项目中的一个模块,它提供了类似于LINQ(Language-Integrated Query)的功能,用于在Java中进行数据查询和操作。Linq4j可以将逻辑查询转换为物理查询,支持对集合进行筛选、映射、分组等…...
FPGA SATA高速存储设计
今天来讲一篇如何在fpga上实现sata ip,然后利用sata ip实现读写sata 盘的目的,如果需要再速度和容量上增加,那么仅仅需要增加sata ip个数就能够实现增加sata盘,如果仅仅实现data的读写整体来说sata ip设计比较简单,下面…...
MySQL----为什么选择使用MySQL
在我们日常做项目的过程中,不论是个人还是企业,大多数会选择使用MySQL数据库作为后端数据库存储,它到底有什么优势,能够做到如此广为流传呢? 优点 稳定性:MySQL具有良好的稳定性和可靠性,能够保…...
01.音视频小白系统入门(新专栏)
目录 一、基础知识 二、音频 三、视频 四、流媒体服务器 五、收获 音视频技术在远程办公、在线教育、远程医疗等领域的应用广泛。 学习音视频技术有助于提升职业竞争力,满足市场需求。 掌握音视频基础知识对未来发展至关重要,基础不牢会导致后续学习…...
C++:enum枚举共用体union
enum枚举 C继承C的枚举用法 (1)典型枚举类型定义,枚举变量定义和使用 (2)枚举类型中的枚举值常量不能和其他外部常量名称冲突: 举例1宏定义,举例2另一个枚举 // 定义一个名为Color的枚举类型 enum Color {RED, // 红色,默认值…...
动手学深度学习(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…...
LinkedIn被封原因和解封方法
对于初识领英和对领英生态规则不熟悉的人来说,很容易造成领英账号被封号(被限制登录)的情况,那么如何才能避免和解决领英帐号被封号(被限制登录)的难题呢? 领英帐号被封号或被限制登录主要会有两类情况。 首先要搞清楚, Linkedi…...
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…...
spring boot (shiro)+ websocket测试连接不上的简单检测处理
1、用前端连接测试的demo一切正常,但是到了项目中连接不上了 一开始以为是地址错,但是换了apifox测试也是不可以。 2、考虑是shiro进行了拦截了,所以就访问不到了地址,那么就放行。 3、再次用apifox测试,成功了。 当然…...
Jenkins - Python 虚拟环境
Jenkins - Python 虚拟环境 引言Python 虚拟环境创建 Python 虚拟环境安装 virtualenv(可选)创建虚拟环境激活虚拟环境安装依赖包退出虚拟环境(可选)注意 Python 虚拟环境实践 引言 Automation 脚本通常会部署到 Jenkins 上运行&…...
每日一道算法题 面试题 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…...
Apache Kylin资源管理全指南:优化你的大数据架构
标题:Apache Kylin资源管理全指南:优化你的大数据架构 摘要 Apache Kylin是一个开源的分布式分析引擎,旨在为大规模数据集提供高性能的SQL查询能力。在Kylin中进行有效的资源管理对于确保查询性能和系统稳定性至关重要。本文将详细介绍如何…...
计算机网络微课堂(湖科大教书匠)TCP部分
计算机网络微课堂(湖科大教书匠)TCP部分 【计算机网络微课堂(有字幕无背景音乐版)】 TCP的流量控制 一般来说,我们希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收&#…...
对外网站建设情况汇报/金融网站推广圳seo公司
关于安装Docker和Docker-Compose,参考《Thingsboard学习之二安装Docker和Docker-Compose》 首先检查一下是否有安装git yum install git 克隆thingsboard源码 git clone https://github.com/thingsboard/thingsboard 进入至文件夹中,启动数据库及应用 cd…...
哪有做网站 的/seo关键词选择及优化
本文是一份 Mysql 数据表的创建和优化checklist,含表设计、索引的创建及使用原则、SQL 优化以及一些配置、事务、架构层的优化手段。本文会持续更新,文末附更新记录。2|0数据表设计在满足业务需求的前提下:数值类型优于字符类型。字符类型越短…...
移动网站系统/搜索引擎排名优化技术
报错来源: 在配置好的idea上,把代码生成器自动生成的代码导入带项目中,直接进行findALl全查,报错,如下图: 尝试解决方法: 数据库运行sql语句,查询成功,数据ok,数据乱码: 数据库编码格式utf8,数据库可插入正常中文清空缓存,重新编译,重启idea,JpaSystemException重新生成反复n遍…...
中国最好的网站建设公司/微博推广方法有哪些
抛开各种技术细节,从应用程序角度讲: 1、在单核计算机里,有一个资源是无法被多个程序并行使用的:cpu。 没有操作系统的情况下,一个程序一直独占着全都cpu。 如果要有两个任务来共享同一个CPU,程序员就需要仔…...
合肥建设委员会网站/免费网站推广网站不用下载
sigmiod与softmax sigmiod就是逻辑回归(解决二分类问题);softmax是多分类问题的逻辑回归 虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数&…...
南京网站开发南京乐识优/免费com域名申请注册
大多数用MergeTree的场景都建立分区表,不过MergeTree也可以创建非分区表的,下面就举例说明如何创建分区表和非分区表: 创建非分区表: CREATE TABLE tabel(orderid Int64 COMMENT 订单号, orderstatus Nullable(String) COMMENT …...