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

Redis ⑦-set | Zset

在这里插入图片描述

set类型基本介绍

set 为集合,该集合为无序集合,可以存储多个不同的数据类型,包括字符串、整数、浮点数等。

集合中的元素是唯一的,不可重复。

set类型常用命令

SADD

SADD key member [member...]
  • 集合中的值称为 member
  • 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
  • 返回成功添加的元素的数量。

SMEMEBRS

SMEMBERS key
  • 返回集合 key 中的所有成员。

SISMEMEBERS

SISMEMBER key member
  • 判断 member 是否是集合 key 的成员。
  • 返回 1 表示 member 是集合 key 的成员,返回 0 表示 member 不是集合 key 的成员。

SCARD

SCARD key
  • 返回集合 key 的基数(元素的数量)。

SPOP

SPOP key [count]
  • 由于 set 中的元素是无序的,所以删除元素是随机的。
  • 随机移除并返回集合 key 中的一个元素,如果不写 count 参数,则随机移除并返回一个元素。否则随机移除并返回 count 个元素。

SRANDMEMBER

SRANDMEMBER key [count]
  • 随机返回集合 key 中的一个元素,如果不写 count 参数,则随机返回一个元素。否则随机返回 count 个元素。

SMOVE

SMOVE source destination member
  • 将集合 source 中的 member 元素移动到集合 destination 中。
  • 如果 member 元素不存在于 source 集合中,则不进行任何操作,返回 0。
  • 如果 member 元素已经存在于 destination 集合中,则不进行任何操作,返回 0。
  • 如果 member 元素成功地从 source 集合中移除并添加到 destination 集合中,则返回 1。

SREM

SREM key member [member...]
  • 移除集合 key 中的一个或多个 member 元素。
  • 如果 member 元素不存在于集合中,则忽略该元素。
  • 返回被成功移除的元素的数量。

SINTER

SINTER key [key...]
  • 交集:
    A ∩ B = { x ∈ A ∣ x ∈ B } A \cap B = \{x \in A \mid x \in B\} AB={xAxB}
  • 返回给定所有集合的交集。
  • 时间复杂度为 O(M * N),M 为所有给定集合中最小集合的元素数量,N 为所有给定集合中最大集合的元素数量。

SINTERSTORE

SINTERSTORE destination key [key...]
  • 将所有给定集合的交集存储在集合 destination 中。
  • 如果 destination 集合已经存在,则先移除该集合中的所有元素。
  • 返回存储在 destination 集合中的元素数量。

SUNION

SUNION key [key...]
  • 并集:
    A ∪ B = { x ∣ x ∈ A ∨ x ∈ B } A\cup B = \{x\mid x\in A \vee x\in B\} AB={xxAxB}
  • 返回给定所有集合的并集。
  • 时间复杂度为 O(N),N 就是总的元素数量。

SUNIONSTORE

SUNIONSTORE destination key [key...]
  • 将所有给定集合的并集存储在集合 destination 中。
  • 如果 destination 集合已经存在,则先移除该集合中的所有元素。
  • 返回存储在 destination 集合中的元素数量。

SDIFF

SDIFF key [key...]
  • 差集:
    A − B = { x ∈ A ∣ x ∉ B } B − A = { x ∈ B ∣ x ∉ A } A - B = \{x \in A \mid x \notin B\} \\ B - A = \{x \in B \mid x \notin A\} AB={xAx/B}BA={xBx/A}
  • 返回给定所有集合的差集。
  • 时间复杂度为 O(N),N 就是总的元素数量。

SDIFFSTORE

SDIFFSTORE destination key [key...]
  • 将所有给定集合的差集存储在集合 destination 中。
  • 如果 destination 集合已经存在,则先移除该集合中的所有元素。
  • 返回存储在 destination 集合中的元素数量。

set编码方式

  • set 类型有两种编码方式:intsethashtable
  • intset:当集合中元素都是整数并且元素数量较少时,Redis 会使用 intset 编码方式。
  • hashtable:当集合中元素数量较多或者值不全为整数时,Redis 会使用 hashtable 编码方式。

set应用场景

  • 保存用户一些 “标签”,也就是用户画像,如兴趣爱好、收藏的文章、喜欢的电影等。
  • 利用 set 的交集功能,可以找到两个用户共同喜欢的电影、共同的好友等。
  • 使用 set 统计 UVPV 等指标。UV 就是 user view 的简写,即用户访问某个页面的次数。PV 就是 page view 的简写,即某个页面的访问次数。

Zset类型基本介绍

Zset 为有序集合,该集合为有序集合,可以存储多个不同的数据类型,包括字符串、整数、浮点数等。

setZset 中的元素是按照顺序存放的,其通过存储 二元组<memeber, score>,随即按照 score 对元素进行升序排序(默认为升序)。

如果出现相同的 score,则按照 member 的字典序进行排序

Zset 中的 member 必须是唯一的,不可重复,但是 score 可以重复。

Zset类型常用命令

ZADD

ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member...]
  • ZADD 命令用于向有序集合 key 中添加元素。
  • score 是一个浮点数,用于对元素 member 进行排序。
  • 时间复杂度为 O(log(N)),其中 N 为有序集合元素的个数
  • 返回值为成功添加的元素的数量。只是新增元素的数量,如果是更新对应的 score 值,则不会添加到计数中
  • NX:只在元素的 score 值不存在时,才执行添加操作,否则添加失败。
  • XX:只在元素的 score 值存在时,才执行添加操作,否则添加失败。
  • GT:表示当更新的 member 的值已经存在并且设置的 新 score 大于已经存在的 score 时,才执行更新操作。如果 member 不存在,也不影响添加新的 memeber
  • LT:当更新的 member 的值已经存在并且设置的 新 score 小于已经存在的 score 时,才执行更新操作。如果 member 不存在,也不影响添加新的 memeber
  • CH:更改返回值的数量,如果设置为 CH,则返回添加或更新元素的数量。默认是包括更新元素的数量的。
  • INCR:将 memberscore 加上 score,返回值为新的 score 值。

ZRANGE

ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
  • 返回有序集合 key 中指定区间内的元素,区间以 startstop 指定。默认是以下标(排序好了)进行获取。startstop 默认都是闭区间,若写成 (start (stop 表示都是开区间。
  • 时间复杂度为 O(log(N)+M),其中 N 为有序集合元素的个数,M 为要返回的元素的个数
  • REV:表示 reverse,即按照降序进行排序,若 score 相同,则按照字典序进行降序排序。
  • BYSCORE:表示按照 score 进行排序,startstop 写成对应的分数区间而不是下标区间。
  • BYLEX:表示按照字典序进行排序,startstop 写成字母。其中,字母必须加上 [ 或者 (,如:[a [z。写成 -+ 表示获取所有元素,类似于默认的 0-1
  • LIMIT:限制返回元素的数量,offset 表示偏移量,count 表示数量。
  • WITHSCORES:表示返回元素的所有信息,即包括 score 值。

ZREVRANGE、ZRANGEBYSCORE、ZREVRANGEBYSCORE、ZRANGEBYLEX、ZREVRANGEBYLEX

ZREVRANGE key start stop [WITHSCORES]
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
ZRANGEBYLEX key min max [LIMIT offset count]
ZREVRANGEBYLEX key max min [LIMIT offset count]
  • 在 6.2.0 版本之后,这些命令都将被废弃,因为 ZRANGE 命令可以实现相同的功能

ZCARD

ZCARD key
  • 返回有序集合 key 中元素的数量。
  • 时间复杂度为 O(1)。

ZCOUNT

ZCOUNT key min max
  • 返回有序集合 key 中指定分数区间 [min, max] 内元素的数量。
  • 时间复杂度为 O(log(N))。
  • 也可以写成 (min (max 表示分数区间都为开区间。inf 为无穷大,-inf 为负无穷大。

ZPOPMAX

ZPOPMAX key [count]
  • 移除并返回有序集合 key 中分数最高的元素,如果不写 count 参数,则随机移除并返回一个元素。否则随机移除并返回 count 个元素。
  • 时间复杂度为 O(log(N)M),其中 N 为有序集合元素的个数,M 为要返回的元素的个数
  • 实际上,该命令的时间复杂度可以优化为 O(log(N)),但是 Redis 并没有实现该优化,可能是因为优化之后提升的效率并不明显

ZPOPMIN

ZPOPMIN key [count]
  • 移除并返回有序集合 key 中分数最低的元素,如果不写 count 参数,则随机移除并返回一个元素。否则随机移除并返回 count 个元素。
  • 时间复杂度为 O(log(N)*M),其中 N 为有序集合元素的个数,M 为要返回的元素的个数

BZPOPMAX、BZPOPMIN

BZPOPMAX key [key ...] timeout
BZPOPMIN key [key ...] timeout
  • 阻塞式的 ZPOPMAXZPOPMIN,如果 key 中为空,则阻塞 timeout 时间后。在指定的时间内,如果有元素被添加到有序集合 key 中,则返回该元素。
  • 如果没有元素被添加到有序集合 key 中,则在指定的时间内一直阻塞,直到有元素被添加到有序集合 key 中。
  • 时间复杂度为 O(log(N)),其中 N 为有序集合元素的个数

ZRANK

ZRANK key member
  • 返回有序集合 keymember 元素的排名(从 0 开始),如果 member 不存在,则返回 nil
  • 时间复杂度为 O(log(N))

ZREVRANK

ZREVRANK key member
  • 返回有序集合 keymember 元素的排名(从 0 开始),但是反着算,因为 reverse 了。
  • 时间复杂度为 O(log(N))

ZSCORE

ZSCORE key member
  • 返回有序集合 keymember 元素的 score 值,如果 member 不存在,则返回 nil
  • 时间复杂度为 O(log(1))

ZREM

ZREM key member [member ...]
  • 从有序集合 key 中移除 member 元素,如果 member 不存在,则忽略。
  • 返回被移除元素的数量。
  • 时间复杂度为 O(M*log(N)),其中 M 参数中元素的个数,N 为有序集合元素的个数

ZREMRANGEBYSCORE

ZREMRANGEBYSCORE key min max
  • 从有序集合 key 中移除 score 值在 [min, max] 区间内的元素。
  • 返回被移除元素的数量。
  • 时间复杂度为 O(log(N)+M),其中 N 为有序集合元素的个数,M 为移除的元素的个数

ZREMRANGEBYLEX

ZREMRANGEBYLEX key min max
  • 从有序集合 key 中移除 member 值在 [min, max] 区间内的元素。
  • 返回被移除元素的数量。
  • 时间复杂度为 O(log(N)+M),其中 N 为有序集合元素的个数,M 为移除的元素的个数

ZREMRANGEBYRANK

ZREMRANGEBYRANK key start stop
  • 从有序集合 key 中移除排名在 [start, stop] 区间内的元素。
  • 返回被移除元素的数量。
  • 时间复杂度为 O(log(N)+M),其中 N 为有序集合元素的个数,M 为移除的元素的个数

ZINCYBY

ZINCRBY key increment member
  • member 元素的 score 值增加 increment,如果 member 不存在,则添加 member 元素并设置 scoreincrement
  • 返回更新后的 member 元素的 score 值。
  • 时间复杂度为 O(log(N)),其中 N 为有序集合元素的个数

ZINTER

ZINTER numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MIN | MAX] [WITHSCORES]
  • 计算多个有序集合的交集,将计算后的结果返回
  • numkeys:表示需要计算交集的有序集合的个数。这里作用就有点像 HTTP 协议中的 content-length
  • WEIGHTS:表示为相应的 key 设置权重,权重的个数必须与 numkeys 相等。此处指定的相当于一个系数,会乘以当前的 score 并返回。
  • AGGREGATEZset 的交集计算只是按照 member 进行的,所以会存在相同 member 但是 score 不同的情况,此时需要对结果进行聚合。SUM 表示对 score 进行求和,MIN 表示取最小的 scoreMAX 表示取最大的 score
  • WITHSCORES:表示返回结果中包含 score 值。
  • 时间复杂度为 O(N*K)+O(M*log(M)),其中 N 为所有有序集合中最小的那个,K 为需要计算交集的有序集合的个数,M 为结果集的元素个数。
  • 实际上,时间复杂度可以近似看为 O(M*log(M))

ZINTERSTORE

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight[weight ...]] [AGGREGATE <SUM | MIN | MAX>]
  • 将多个有序集合的交集存储到新的有序集合 destination 中。
  • 如果 destination 已存在,则会将其重写。
  • 其他的与 ZINTER 命令相同。
  • 时间复杂度为 O(N*K)+O(M*log(M))

ZUNION

ZUNION numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MIN | MAX] [WITHSCORES]
  • 计算多个有序集合的并集,将计算后的结果返回。
  • ZINTER 命令类似,只是计算的是并集。
  • 时间复杂度为 O(N)+O(M*log(M)),其中 N 为所有有序集合元素数量的总和,M 为结果集的元素个数。
  • 实际上,时间复杂度也可以近似看为 O(M*log(M))

ZUNIONSTORE

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight[weight ...]] [AGGREGATE <SUM | MIN | MAX>]
  • 将多个有序集合的并集存储到新的有序集合 destination 中。
  • 如果 destination 已存在,则会将其重写。
  • 其他的与 ZUNION 命令相同。
  • 时间复杂度为 O(N)+O(M*log(M))

ZDIFF

ZDIFF numkeys key [key ...] [WITHSCORES]
  • 计算多个有序集合的差集,将计算后的结果返回。
  • 时间复杂度为 O(L + (N-K)log(N)),L 为所有有序集合的所有元素总和,N 为第一个有序集合的元素个数,K 为结果集的元素个数。

ZDIFFSTORE

ZDIFFSTORE destination numkeys key [key ...]
  • 将多个有序集合的差集存储到新的有序集合 destination 中。
  • 如果 destination 已存在,则会将其重写。
  • 时间复杂度为 O(L + (N-K)log(N))

Zset编码方式

  • Zset 类型有两种编码方式:ziplistskiplist
  • ziplist:当 Zset 中元素数量较少或者某个元素的长度超过一定的限制时,Redis 会使用 ziplist 编码方式。
  • skiplist:跳表,就是一种复杂链表,查询元素的时间复杂度为 O(log(N))

Zset的应用场景

  • 排行榜:比如,一个社交网站的用户排行榜,可以用 Zset 实现。
  • 热度排行榜通常由多种因素影响,比如浏览量、点赞数、评论数等,可以用 多个 Zset 存储,然后用 ZUNIONSTORE 或者 ZINTERSTORE 并且指定不同的数值的权重(WEIGHTS),计算出一个综合的热度排行榜。

相关文章:

Redis ⑦-set | Zset

set类型基本介绍 set 为集合&#xff0c;该集合为无序集合&#xff0c;可以存储多个不同的数据类型&#xff0c;包括字符串、整数、浮点数等。 集合中的元素是唯一的&#xff0c;不可重复。 set类型常用命令 SADD SADD key member [member...]集合中的值称为 member将一个…...

在线图书管理系统的结构化需求分析过程讲解

一、引言 结构化分析是一种面向数据流进行需求分析的方法&#xff0c;其总体步骤包括&#xff1a; 1. 需求获取&#xff1b; 2. 分析建模&#xff1b; 3. 需求文档化&#xff1b; 4. 需求验证与评审。 本文将以在线图书管理系统为例&#xff0c;详细展示按照这些步骤进行…...

【Linux】基于环形队列的生产消费者模型

个人主页~ 基于环形队列的生产消费者模型 一、POSIX信号量1、概述2、调用接口&#xff08;一&#xff09;初始化信号量&#xff08;二&#xff09;销毁信号量&#xff08;三&#xff09;等待信号量&#xff08;四&#xff09;发布信号量 3、在环形队列中的作用 二、基于环形队列…...

如何实现Kafka的Exactly-Once语义?

Kafka 的 Exactly-Once&#xff08;精确一次&#xff09;语义是分布式消息系统中最高等级的数据一致性保证&#xff0c;包含三个层面的含义&#xff1a; 消息不会丢失消息不会重复消费消息处理结果具有确定性 模式局限性&#xff1a; 这里模式有个问题&#xff0c;会导致性能…...

x-cmd install | Orbiton:极简至上的终端文本编辑器与轻量级 IDE

目录 核心特点安装适用场景优势 厌倦了臃肿复杂的 IDE&#xff1f;渴望一个轻巧、快速、专注的编码环境&#xff1f;Orbiton&#xff0c;一款极简主义的终端文本编辑器与轻量级 IDE&#xff0c;将带给你前所未有的编码体验。 核心特点 极简主义&#xff0c;专注编码&#xff1…...

WSL释放空间

在 WSL (Windows Subsystem for Linux) 中&#xff0c;Linux 发行版可能会占用越来越多的磁盘空间&#xff0c;即使删除文件后&#xff0c;空间也可能不会自动释放。这是因为 WSL 使用虚拟硬盘&#xff08;VHDX 文件&#xff09;来存储 Linux 文件系统&#xff0c;而 Windows 不…...

51c大模型~合集122

我自己的原文哦~ https://blog.51cto.com/whaosoft/13877107 #PHYBench 北大物院200人合作&#xff0c;金牌得主超50人&#xff01;PHYBench&#xff1a;大模型究竟能不能真的懂物理&#xff1f; 本项目由北京大学物理学院朱华星老师、曹庆宏副院长统筹指导。基准设计、…...

Flink HA 总结

前言 总结 Flink HA 版本 Flink 1.15.3、1.15.4 官方文档 https://nightlies.apache.org/flink/flink-docs-release-1.19/zh/docs/deployment/ha/overview/ 由官方文档可知&#xff1a; HA 是对于 JobManager 的故障恢复&#xff0c;默认情况下&#xff0c;每个 Flink 集…...

从代码学习机器学习 - UMAP降维算法 scikit-learn版

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、UMAP降维算法介绍二、代码实践三、代码中可调整的降维参数总结前言 在机器学习和数据科学领域,我们经常会遇到高维数据。高维数据虽然包含了丰富的信息,但也带来了“维度灾难”的问题,…...

除了Object.freeze(),JavaScript中还有哪些优化性能的对象限制方法?

除了Object.freeze()&#xff0c;JavaScript中还有哪些优化性能的对象限制方法&#xff1f; 前言 在前端开发中&#xff0c;性能优化是一个永恒的话题。当我们处理大型对象或频繁操作对象时&#xff0c;JavaScript 提供的对象限制方法能有效提升代码执行效率。众所周知的 Obje…...

实战指南:搭建AIRIOT全场景智慧养老管理平台系统全流程解析

依托AIRIOT智慧系统搭建平台构建的AIRIOT智慧养老管理系统&#xff0c;通过管理驾驶舱、健康管理、生活服务与安全监控、综合管理五大核心模块&#xff0c;构建覆盖“数据感知→智能分析→服务联动→安全保障”的全链路养老管理体系&#xff0c;助力养老机构实现精细化、智能化…...

【硬件系统架构】哈佛架构

一、引言 在计算机科学的浩瀚宇宙中&#xff0c;计算机体系结构犹如星辰般繁多且各有独特光芒。哈佛架构便是其中一颗耀眼的明星&#xff0c;它在众多计算机体系结构中占据着独特而重要的地位。从计算机技术的萌芽期一路走来&#xff0c;哈佛架构不断发展演变&#xff0c;在不同…...

晶振PCB设计核心要点与规范

一、布局与走线设计 位置优先原则&#xff1a; 晶振紧邻主控芯片&#xff08;如MCU、FPGA&#xff09;时钟输入引脚&#xff0c;最大走线长度≤10mm。 远离高速信号线&#xff08;如DDR、USB差分对&#xff09;&#xff0c;间距≥3倍线宽&#xff0c;避免串扰。 对称走线&am…...

Dyna螺栓预紧力

01 前处理 1.1 几何模型构建 用ls-prepost进行建模&#xff0c;模型构建如图 1所示。 图 1 模型 1.2 网格模型构建 在ls-prepost中进行网格划分&#xff0c;最终效果图如图 2所示。 图 2 网格模型 1.3 有限元模型构建 1.3.1 材料定义 设置两种材料&#xff0c;均使用线弹…...

排序算法详解笔记

评价维度 运行效率就地性稳定性 自适应性&#xff1a;自适应排序能够利用输入数据已有的顺序信息来减少计算量&#xff0c;达到更优的时间效率。自适应排序算法的最佳时间复杂度通常优于平均时间复杂度。 是否基于比较&#xff1a;基于比较的排序依赖比较运算符&#xff08;…...

喷泉码技术在现代物联网中的应用 设计

喷泉码技术在现代物联网中的应用 摘 要 喷泉码作为一种无速率编码技术,凭借其动态生成编码包的特性,在物联网通信中展现出独特的优势。其核心思想在于接收端只需接收到足够数量的任意编码包即可恢复原始数据,这种特性使其特别适用于动态信道和多用户场景。喷泉码的实现主要…...

LVDS系列10:Xilinx 7系可编程输入延迟(三)

这节继续讲解IDELAYE2和IDELAYCTRL的VARIABLE模式、VAR_LOAD模式和VAR_LOAD_PIPE模式的仿真测试&#xff1b;  VARIABLE模式使用&#xff1a; VARIABLE模式需要使用INC和CE端口控制抽头值的递增递减变化&#xff1b; 测试代码如下&#xff1a; module top_7series_idelay( i…...

QT:自定义ComboBox

实现效果: 实现combobox的下拉框区域与item区域分开做UI交互显示。 支持4种实现效果,如下 效果一: 效果二: 效果三: 效果四: 实现逻辑: ui由一个toolbutton和combobox上下组合成,重点在于combobox。 我设置了4种枚举,ButtonWithComboBox对应效果一;OnlyButt…...

Python爬虫学习路径与实战指南 02

一、进阶技巧与工具 1、处理复杂反爬机制 验证码破解&#xff08;谨慎使用&#xff09;&#xff1a; 简单图像验证码&#xff1a;使用 pytesseract&#xff08;OCR识别&#xff09; PIL 处理图像。 复杂验证码&#xff1a;考虑付费API&#xff08;如打码平台&#xff09;。 …...

Crawl4AI,智能体网络自动采集利器

Crawl是一个强大的工具&#xff0c;它赋予AI智能体更高的效率和准确性执行网络爬取和数据提取任务。其开源特性、AI驱动的能力和多功能性&#xff0c;使其成为构建智能且数据驱动智能体的宝贵资产&#xff0c;告别繁琐: 爬虫新宠 crawl4ai,数行代码搞定数据采集&#xff0c;AI …...

C语言实现卡ID启用排序

任务&#xff1a; typedef struct {uint8_t bindflag; uint8_t userCardNumber; //当前用户卡的数据uint32_t userCardId[7];//当前6个用户的卡ID }USER_NFC;结构体中bindflag从高到低的的高七位bit表示数组userCardId中低到高卡ID的启用禁用状态&#xff0c;userC…...

html css js网页制作成品——HTML+CSS甜品店网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

漫反射实现+逐像素漫反射+逐像素漫反射实现

标准光照的构成结构 自发光&#xff1a;材质本身发出的光&#xff0c;模拟环境使用的光 漫反射光&#xff1a;光照在粗糙材质后&#xff0c;光的反射方向随机&#xff0c;还有一些光发生了折射&#xff0c;造成材质 表面没有明显的光斑。 高光反射光&#xff1a;光照到材质表面…...

nginx代理websocket时ws遇到仅支持域名访问的处理

最终改造点 proxy_set_header Host 这一行 未改之前遇到的问题&#xff1a; nginx 日志显示 https://aaa.bbbb.cn:7413 被解析成了 IP 地址&#xff0c;这通常是因为 DNS 解析的结果被缓存或某些中间层&#xff08;如负载均衡器、防火墙等&#xff09;将域名替换为 IP 地址。…...

具身智能:从理论突破到场景落地的全解析

一、具身智能&#xff1a;重新定义 “智能” 的物理边界 &#xff08;一&#xff09;概念本质与核心特征 具身智能&#xff08;Embodied Intelligence&#xff09;是人工智能与机器人学深度融合的前沿领域&#xff0c;其核心在于通过物理实体与环境的动态交互实现智能行为。区…...

用Postman验证IAM Token的实际操作

当我们需要用Postman发送一个最简单的请求去验证Token的时候我们该怎么办&#xff1f; 【一、步骤】 步骤1&#xff1a;打开Postman&#xff0c;新建一个GET请求 请求地址填&#xff1a; https://iam.cn-north-4.myhuaweicloud.com/v3/auth/projects 解释一下&#xff1a;…...

CH592/CH582 触摸按键应用开发实例讲解

一. 触摸原理介绍 1. 触摸按键电容产生原理 一般应用中,可用手指与触摸板的电容模型简化代替人体与触摸板的电容模型,如图所示。 沁恒微电子的电容触摸按键检测方案主要有以下两种&#xff1a; &#xff08;1&#xff09; 电流源充电方案。 低功耗蓝牙系列、通用系列 MCU 使…...

为什么选择有版权的答题pk小程序

选择有版权的答题PK小程序主要有以下原因&#xff1a; 一、避免法律风险 随着国家对知识产权保护力度的加大&#xff0c;使用无版权的答题PK小程序可能会引发侵权纠纷。一旦被原作者或版权方发现&#xff0c;使用者可能会面临法律诉讼&#xff0c;需要承担相应的法律责任&…...

Java生成微信小程序码及小程序短链接

使用wx-java-miniapp-spring-boot-starter 生成微信小程序码及小程序短链接 在pom.xml文件中引入依赖 <dependency><groupId>com.github.binarywang</groupId><artifactId>wx-java-miniapp-spring-boot-starter</artifactId><version>4.7…...

从普查到防控:ArcGIS洪水灾害全流程分析技术实战——十大专题覆盖风险区划/淹没制图/水文分析/洪水分析/淹没分析/项目交流,攻克防洪决策数据瓶颈!

&#x1f50d; 防范未然的关键一步&#xff1a;洪水灾害普查是筑牢防洪安全防线的基础。通过全面普查&#xff0c;可以精准掌握洪水灾害的分布、频率和影响范围&#xff0c;为后续的防洪规划、资源调配和应急响应提供详实的数据支持。这有助于提前识别潜在的高风险区域&#xf…...

Ubuntu安装SRS流媒体服务

通过网盘分享的文件&#xff1a;srs 链接: https://pan.baidu.com/s/1tdnxxUWh8edcSnXrQD1uLQ?pwd0000 提取码: 0000 官网地址&#xff1a;Build | SRS 将百度网盘提供的srs 和 conf 下载或上传到指定服务器 # 安装需要的依赖包 sudo apt install -y cmake tclsh unzip gcc…...

设计模式(行为型)解释器模式

定义 给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;这个解释器使用该表示来解释语言中的句子。这意味着我们能够针对特定领域的问题&#xff0c;构建一套专属的语言体系&#xff0c;并通过解释器对使用该语言描述的问题进行解析和处…...

海外独立站VUE3加载优化

主要有几个明显问题 1. 请求数量太多&#xff08;139 requests&#xff09; 网页请求了*大量 JS 文件*&#xff08;都是 index-xxxx.js&#xff09;&#xff0c;而且每个文件都比较小。 每次建立请求都有 TCP 连接开销&#xff08;特别是 HTTP/1.1&#xff09;&#xff0c;导…...

关于windows API 的键鼠可控可测

相关函数解释 GetAsyncKeyState 是 Windows API 中的一个函数&#xff0c;用于判断某个虚拟键是否被按下。GetAsyncKeyState(VK_ESCAPE) 专门用于检测 Esc 键的状态。下面为你详细介绍其用法&#xff1a; 函数原型 cpp SHORT GetAsyncKeyState( int vKey ); 参数 vKey&a…...

普发ASM392EUV检漏仪维修说明手测内容可目录

普发ASM392EUV检漏仪维修说明手测内容可目录...

Python pip下载包及依赖到指定文件夹

要使用pip下载包及其所有依赖到指定文件夹&#xff0c;请按照以下步骤操作&#xff1a; 步骤说明 使用pip download命令&#xff1a;该命令用于下载包及其依赖而不安装。指定目标目录&#xff1a;通过-d或--dest参数设置下载路径。确保包含依赖&#xff1a;默认情况下会下载依…...

DIFY 又跟新了,来到 1.3.0 版本,看正文

欢迎来到 1.3.0 版本&#xff01;添加了各种巧妙的功能、修复了错误&#xff0c;并带来了一些新功能&#xff1a; 一、核心亮点&#xff1a; 结构化输出 1、LLM 节点新增JSON Schema编辑器&#xff0c;确保大语言模型能够返回符合预设格式的JSON数据。这一功能有助于提升数据…...

凸包问题 Graham 扫描算法 MATLAB

算法要解决的问题 Graham 扫描算法要解决的问题是在给定一组二维平面上的点集时&#xff0c;找出能够完全包含这些点的最小凸多边形&#xff0c;这个最小凸多边形就是这些点的凸包。在很多实际场景中&#xff0c;我们可能只关注一个点集的最外层边界&#xff0c;而凸包算法就可…...

es+kibana---集群部署

其实一般es要跑3个节点的&#xff0c;这样才能做高可用&#xff0c;处理并发大&#xff0c;但是我这里只是一个pod mkdir -p /stroe/data/es es搭建&#xff1a; #【拉取镜像】 #docker pull elasticsearch:6.8.7 #docker pull busybox:1.28 【导入镜像】 docker load -i es.…...

定时器的源码介绍与简单实现——多线程编程简单案例[多线程编程篇(5)]

目录 前言 什么是定时器 JAVA标准库中的定时器 而关于sched方法,请看源码: 为什么我们能知道"notify() 唤醒后台线程 TimerThread"? TimerThread 关键逻辑 第一步&#xff1a;加锁 queue&#xff0c;看有没有任务 第二步&#xff1a;取出最近要执行的任务 …...

SQL常用数据清洗语句

数据清洗&#xff1a;发现并纠正数据文件里的数据错误和不一致性&#xff0c;让数据达到分析要求的过程。 运用 SQL 进行数据清洗时&#xff0c;可借助多种语句和函数来处理数据中的缺失值、重复值、异常值以及格式错误等问题。 1. 处理缺失值 数据中某些变量的值为空的情况&…...

《Go 语言高并发爬虫开发:淘宝商品 API 实时采集与 ETL 数据处理管道》

在电商数据处理领域&#xff0c;高效获取并处理海量商品数据是企业实现精准运营、市场分析的重要基础。Go 语言凭借其出色的并发性能&#xff0c;成为开发高并发爬虫的理想选择。本文将介绍如何使用 Go 语言进行淘宝商品 API 实时采集&#xff0c;并构建 ETL&#xff08;Extrac…...

大模型(LLMs)加速篇

当前优化模型最主要技术手段有哪些&#xff1f; 算法层面&#xff1a;蒸馏、量化软件层面&#xff1a;计算图优化、模型编译硬件层面&#xff1a;FP8&#xff08;NVIDIA H系列GPU开始支持FP8&#xff0c;兼有fp16的稳定性和int8的速度&#xff09; 推理加速框架有哪一些&#…...

Linux0.11引导启动程序:简略过程

引言 目标&#xff1a;是重写boot文件夹下面的引导文件&#xff0c;加入一些个人信息。语法&#xff1a;由于使用两个语法风格的汇编需要两个汇编器&#xff0c;有些麻烦&#xff0c;直接全都用GNU的 as(gas)进行编译。使用AT&T 语法的汇编语言程序。接下来先拜读同济大学赵…...

【JAVAFX】controller中反射调用@FXML的点击事件失败

场景 当前有一个controller中定义的事件如 FXMLvoid openZhengjieWindow(ActionEvent event) {System.out.println("zhengjie");}通过反射去调用 public void callMethodByString(String methodSuffix) {try {Method method this.getClass().getMethod("open&…...

人工智能数学基础(二):初等数学

在人工智能领域&#xff0c;初等数学知识是构建复杂模型的基石。本文将从函数、数列、排列组合与二项式定理、集合等方面进行讲解&#xff0c;并结合 Python 编程实现相关案例&#xff0c;帮助大家更好地理解和应用这些数学知识。资源绑定附上完整代码供读者参考学习&#xff0…...

opendds的配置

配置的使用 文档中说明有4种使用配置的方式&#xff1a; 环境变量 命令行参数&#xff08;将覆盖环境变量中的配置&#xff09; 配置文件&#xff08;不会覆盖环境变量或命令行参数中的配置&#xff09; 用户调用的 API&#xff08;将覆盖现有配置&#xff09; 这里对开发…...

mac 基于Docker安装minio

在 macOS 上基于 Docker 安装 MinIO 是一个高效且灵活的方案&#xff0c;尤其适合本地开发或测试环境。以下是详细的安装与配置步骤&#xff0c;结合了最佳实践和常见问题的解决方案&#xff1a; 一、安装 Docker Desktop 下载安装包 访问 Docker 官网&#xff0c;下载适用于 …...

Docker网络架构深度解析与技术实践

目录 第一章 Docker网络架构核心原理 1.1 容器网络模型&#xff08;CNM&#xff09;体系 1.2 网络命名空间隔离机制 1.3 虚拟网络设备对&#xff08;veth&#xff09; 1.4 网桥驱动模型 第二章 Docker网络模式深度剖析 2.1 Bridge模式&#xff08;默认模式&#xff09; …...

如何通过Google Chrome增强网页内容的安全性

在现代互联网环境中&#xff0c;网页安全问题时常困扰着用户。谷歌浏览器作为全球使用最广泛的浏览器之一&#xff0c;提供了多种方式帮助用户增强网页的安全性。以下是一些简单有效的方法&#xff0c;可以帮助用户提高浏览器的安全防护能力。 首先&#xff0c;谷歌浏览器自带了…...