Redis7实战加面试题-基础篇(Redis10大数据类型)

news2024/11/20 3:20:08

说明

刚看完尚硅谷Redis零基础到进阶,最强redis7教程,阳哥亲自带练(附redis面试题)
趁热打铁,根据脑图和视频,对视频中的知识点进行总结,方便以后复习

Redis入门概述

Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。
Redis能干嘛?
主流功能与应用:1.分布式缓存,挡在mysql等数据库之前的带刀护卫
在这里插入图片描述
2.内存存储和持久化(RDB+AOF),redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
3.高可用架构搭配(单机,主从,哨兵,集群)
4.缓存穿透、击穿、雪崩
5.分布式锁
6.队列:Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制,限制今天只能购买几次商品或者一段时间内只能购买一次。也比较适合适用。
7.排行榜加点赞。在互联网应用中,有各种各样的排行榜,如电商网站的月度销量排行榜、社交APP的礼物排行榜、小程序的投票排行榜等等。Redis提供的zset数据类型能够快速实现这些复杂的排行榜。比如小说网站对小说进行排名,根据排名,将排名靠前的小说推荐给用户
总功能概览:
在这里插入图片描述
优势:
1.性能极高–Redis能读的速度是110000次/秒,写的速度是81000次/秒。
2.Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
3.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
4.Redis支持数据的备份,即master-slave模式的数据备份
总结:
在这里插入图片描述
对应网站:
英文官网 中文官网 中文文档
下载安装包 源码地址 在线测试
Redis命令参考

在这里插入图片描述
Redis7.0新特性概述:
Redis releases
部分新特性总览:
1.Redis Functions
在这里插入图片描述
2.Client-eviction
在这里插入图片描述
3.Multi-part AOF
在这里插入图片描述
4.listpack替代ziplist
在这里插入图片描述

Redis10大数据类型

在这里插入图片描述
这里说的数据类型是value的数据类型,key的类型都是字符串。
1.redis字符串(String)
string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象 。一个redis中字符串value最多可以是512M。
2.redis列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个双端链表,最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
3.redis哈希表(Hash)
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)
4.redis集合(Set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,集合对象的编码可以是 intset 或者 hashtable。Redis 中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)
5.redis有序集合(ZSet)
zset(sorted set:有序集合)。Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。zset集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 2^32 - 1
6.redis地理空间(GEO)
Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,包括添加地理位置的坐标。获取地理位置的坐标。计算两个位置之间的距离。根据用户给定的经纬度坐标来获取指定范围内的地理位置集合
7.redis基数统计(HyperLogLog)
HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。
8.redis位图(bitmap)
在这里插入图片描述
9.redis位域(bitfield)
通过bitfield命令可以一次性操作多个比特位域(指的是连续的多个比特位),它会执行一系列操作并返回一个响应数组,这个数组中的元素对应参数列表中的相应操作的执行结果。说白了就是通过bitfield命令我们可以一次性对多个比特位域进行操作。
10.redis流(Stream)
Redis Stream 是 Redis 5.0 版本新增加的数据结构。Redis Stream 主要用于消息队列(MQ,Message Queue),Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。简单来说发布订阅 (pub/sub) 可以分发消息,但无法记录历史消息。而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失
redis常见数据类型操作命令查询网站:
英文官网 中文

Redis 键(key)

常用:
在这里插入图片描述
案例:
key *:查看当前库所有的key
exists key:判断某个key是否存在
type key:查看你的key是什么类型
del key: 删除指定的key数据
unlink key:非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作。
ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期
expire key秒钟:为给定的key设置过期时间

设置 Key 过期时间,默认-1表示永不过期,-2表示已过期 Redis 的过期时间设置有四种形式:
• EXPIRE 秒——设置指定的过期时间(秒),表示的是时间间隔。 • PEXPIRE 毫秒——设置指定的过期时间,以毫秒为单位,表示的是时间间隔。 •
EXPIREAT 时间戳-秒——设置指定的 Key 过期的 Unix 时间,单位为秒,表示的是时间/时刻。
• PEXPIREAT 时间戳-毫秒——设置指定的 Key 到期的 Unix 时间,以毫秒为单位,表示的是时间/时刻。
expire key seconds [NX|XX|GT|LT]

move key dbindex 【0-15】:将当前数据库的key移动到给定的数据库db当中
select dbindex:切换数据库【0-15】,默认为0
dbsize:查看当前数据库key的数量
flushdb:清空当前库
flushall:通杀全部库

数据类型命令及落地运用

备注: 命令不区分大小写,而key是区分大小写的。可以使用help @类型 寻求帮助(help @string
,help @list,help @hash,help @hyperloglog,。。。。。)
Redis字符串(String):
常用命令:
在这里插入图片描述
在这里插入图片描述
String是单值单value,最常用的命令是set key value,get key
在这里插入图片描述
同时设置/获取多个键值:MSET key value [key value …],MGET key [key…],mset/mget/msetnx
在这里插入图片描述
在这里插入图片描述
获取指定区间范围内的值:getrange/setrange
在这里插入图片描述
数值增减:一定要是数字才能进行加减。递增数字(INCR key),增加指定的整数(INCRBY key increment),递减数值(DECR key),减少指定的整数(DECRBY key decrement)
获取字符串长度和内容追加:STRLEN key,APPEND key value
分布式锁:
在这里插入图片描述

setnx key value,setex(set with expire)键秒值/setnx(set if not exist)
在这里插入图片描述
getset(先get再set):
在这里插入图片描述
应用场景:比如抖音无限点赞某个视频或者商品,点一下加一次
在这里插入图片描述
Redis列表(List)
在这里插入图片描述
list属于单key多value。
在这里插入图片描述
案例:
lpush/rpush/lrange
lpop/rpop:
在这里插入图片描述
lindex,按照索引下标获得元素(从上到下)
在这里插入图片描述
llen:获取列表中元素的个数
lrem key 数字N给定值v1 解释(删除N个值等于v1的元素)
在这里插入图片描述
ltrim key开始index 结束index,截取指定范围的值后再赋值给key
在这里插入图片描述
rpoplpush 源列表 目的列表
在这里插入图片描述
lset key index value

在这里插入图片描述
linsert key before/after 已有值 插入的新值
在这里插入图片描述
Redis哈希(Hash):
在这里插入图片描述
KV模式不变,但V是一个键值对。Map<String,Map<Object,object>>
案例:
hset/hget/hmset/hmget/hgetall/hdel
在这里插入图片描述
hlen:获取某个key内的全部数量
hexists key在key里面的某个值的key
hkeys/hvals
在这里插入图片描述
hincrby/ hincrbyfloat
在这里插入图片描述
hsetnx
在这里插入图片描述
应用场景:JD购物车早期设计目前不再采用,当前小中厂可用
在这里插入图片描述
在这里插入图片描述
Redis集合(Set):
在这里插入图片描述
set是单值多value,且无重复。
案例:
SADD key member [member…]:添加元素
SMEMBERS key:遍历集合中的所有元素
SISMEMBER key member:判断元素是否在集合中
SREM key member [member …]:删除元素
scard,获取集合里面的元素个数
在这里插入图片描述
SRANDMEMBER key[数字],从集合中随机展现设置的数字个数元素,元素不删除
在这里插入图片描述
SPOP key[数字]:从集合中随机弹出一个元素,出一个删一个
在这里插入图片描述
smove key1 key2在key1里已存在的某个值:将key1里已存在的某个值赋给key2
在这里插入图片描述
集合运算:集合A(abc12)、B(123ax),
1.集合的差集运算A-B (属于A但不属于B的元素构成的集合)SDIFF key [key…]
2.集合的并集运算AUB(属于A或者属于B的元素合并后的集合)SUNION key [key…]
3.集合的交集运算A∩B(属于A同时也属于B的共同拥有的元素构成的集合)
1)SINTER key [key…]
2)SINTERCARD numkeys key [key…] [ LIMIT limit ] redis7新命令。它不返回结果集,而只返回结果的基数。返回由所有给定集合的交集产生的集合的基数。案例:
在这里插入图片描述
应用场景:微信抽奖小程序
在这里插入图片描述
微信朋友圈点赞查看同赞朋友
在这里插入图片描述
QQ内推可能认识的人
在这里插入图片描述
Redis有序集合Zset(sorted set)
在set基础上,每个val值前加一个score分数值。之前set是k1v1 v2 V3,现在zset是k1 score1 v1 score2 v2。
在这里插入图片描述
案例:
向有序集合中加入一个元素和该元素的分数。ZADD key score member [score member …],添加元素
在这里插入图片描述
ZRANGE key start stop [WITHSCORES]:按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素
zrevrange:
在这里插入图片描述
ZRANGEBYSCORE key min max [WITHSCORES] [ LIMIT offset count ]:获取指定分数范围的元素,( 是不包含,limit 作用是返回限制,limit开始下标步,多少步
在这里插入图片描述
ZSCORE key member:获取元素的分数
在这里插入图片描述
在这里插入图片描述
ZCARD key:获取集合中元素的数量
zrem key 某score下对应的value值,作用是删除元素
在这里插入图片描述
ZINCRBY key increment member:增加某个元素的分数
ZCOUNT key min max:获得指定分数范围内的元素个数
ZMPOP:从键名列表中的第一个非空排序集中弹出一个或多个元素,它们是成员分数对
在这里插入图片描述
zrank key values值,作用是获得下标值
zrevrank key values值,作用是逆序获得下标值
在这里插入图片描述
应用场景:根据商品销售对商品进行排序显示
在这里插入图片描述
Redis位图(bitmap):
由0和1状态表现的二进制位的bit数组
看需求:1.用户是否登陆过Y、N,比如京东每日签到送京豆。2.电影、广告是否被点击播放过 3.钉钉打卡上下班,签到统计
是什么:
在这里插入图片描述
能干嘛:用于状态统计,Y、N,类似AtomicBoolean
基本命令:
在这里插入图片描述
setbit:setbit key offset value,setbit键 偏移位 只能零或者1,Bitmap的偏移量是从零开始算的
在这里插入图片描述
getbit:getbit key offset
strlen:统计字节数占用多少
bitcount:全部键里面含有1的有多少个?
在这里插入图片描述
BITOP operation destkey key [key …]
对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。
operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种:
BITOP AND destkey key [key …] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。
BITOP OR destkey key [key …] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。
BITOP XOR destkey key [key …] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。
BITOP NOT destkey key ,对给定 key 求逻辑非,并将结果保存到 destkey 。
在这里插入图片描述
setbit和getbit案例说明:按照天统计
在这里插入图片描述
应用场景:一年365天,全年天天登陆占用多少字节
在这里插入图片描述

在这里插入图片描述
Redis基数统计( HyperLogLog):
在这里插入图片描述
看需求:
1.统计某个网站的UV、统计某个文章的UV(Unique Visitor,独立访客,一般理解为客户端IP),需要考虑去重
2.用户搜索网站关键词的数量
3.统计用户每天搜索不同词条个数
是什么:去重复统计功能的基数(是—种数据集,去重复后的真实个数)估计算法-就是HyperLogLog,去重脱水后的真实数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Redis地理空间(GEO):
在这里插入图片描述
原理:
在这里插入图片描述
命令:
GEOADD 多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key中
GEOPOS 从键里面返回所有给定位置元素的位置(经度和纬度)
GEODIST 返回两个给定位置之间的距离。
GEORADIUS 以给定的经纬度为中心,返回与中心的距离不超过给定最大距离的所有位置元素。
GEORADIUSBYMEMBER 跟GEORADIUS类似
GEOHASH 返回一个或多个位置元素的Geohash表示
命令实操:
GEOADD 添加经纬度坐标
在这里插入图片描述
处理中文乱码
在这里插入图片描述
GEOPOS 返回经纬度
在这里插入图片描述
GEOHASH 返回坐标的geohash表示,geohash算法生成的base32编码值
在这里插入图片描述
GEODIST 两个位置之间距离
在这里插入图片描述
GEORADIUS:以半径为中心,查找附近的XXX
在这里插入图片描述
GEORADIUSBYMEMBER
在这里插入图片描述
Redis流(Stream):
redis5.0之前痛点:Redis消息队列的2种方案,
1).List实现消息队列,List 实现方式其实就是点对点的模式
在这里插入图片描述
2).(Pub/Sub) Redis5.0版本新增了一个更强大的数据结构-----Stream,Redis版的MQ消息中间件+阻塞队列,实现消息队列,它支持消息的持久化、支持自动生成全局唯一ID、支持ack确认消息的模式、支持消费组模式等,让消息队列更加的稳定和可靠
在这里插入图片描述
底层结构和原理说明:
在这里插入图片描述
基本命令理论简介
队列相关指令:
在这里插入图片描述
消费组相关指令:
在这里插入图片描述
四种特殊符号:
“- + ”:最小和最大可能出现的ld
“$ ”:$表示只消费新的消息,当前流中最大的id,可用于将要到来的信息
“> ”:用于XREADGROUP命令,表示迄今还没有发送给组中使用者的信息,会更新消费者组的最后ID
“ * ”:用于XADD命令中,让系统自动生成id
基本命令代码实操:
队列相关指令:
XADD:添加消息到队列末尾,消息ID必须要比上个ID大,默认用星号表示自动生成规矩,“ * ”用于XADD命令中,让系统自动生成id
在这里插入图片描述XRANGE ,用于获取消息列表(可以指定范围),忽略删除的消息,start表示开始值,-代表最小值。end表示结束值,+代表最大值。count表示最多获取多少个值

在这里插入图片描述

XREVRANGE:与XRANGE的区别在于,获取消息列表元素的方向是相反的,end在前,start在后
在这里插入图片描述
XDEL
在这里插入图片描述

XLEN :用于获取Stream队列的消息的长度
在这里插入图片描述
XTRIM:用于对Stream的长度进行截取,如超长会进行截取,MAXLEN:允许的最大长度,对流进行修剪限制长度
MINID:允许的最小id,从某个id值开始比该id值小的将会被抛弃
在这里插入图片描述
在这里插入图片描述

XREAD:用于获取消息(阻塞/非阻塞),只会返回大于指定ID的消息
在这里插入图片描述
非阻塞
在这里插入图片描述
阻塞
在这里插入图片描述

小总结(类似java里面的阻塞队列)
在这里插入图片描述消费组相关指令:
XGROUP CREATE,用于创建消费者组
在这里插入图片描述

XREADGROUP GROUP:
">”,表示从第一条尚未被消费的消息开始读取,消费组groupA内的消费者consumer1从mystream消息队列中读取所有消息,
在这里插入图片描述

但是,不同消费组的消费者可以消费同一条消息
在这里插入图片描述

消费组的目的:
在这里插入图片描述

重点问题:
在这里插入图片描述
XPENDING:查询每个消费组内所有消费者「已读取、但尚未确认」的消息
在这里插入图片描述
查看某个消费者具体读取了哪些数据
在这里插入图片描述

XACK:向消息队列确认消息处理已完成
在这里插入图片描述
XINFO用于打印Stream\Consumer\Group的详细信息
在这里插入图片描述
使用建议:Stream还是不能100%等价于Kafka、RabbitMQ来使用的,生产案例少,慎用
Redis位域(bitfield):
了解即可。将一个Redis字符串看作是一个由二进制位组成的数组,并能对变长位宽和任意没有字节对齐的指定整型位域进行寻址和修改
在这里插入图片描述
在这里插入图片描述
用于位域修改,溢出控制。
命令基本语法:
在这里插入图片描述
基本命令实操:
BITFIELD key [GET type offset]
在这里插入图片描述

BITFIELD key [SET type offset value]
在这里插入图片描述

BITFIELD key [INCRBY type offset increment],默认情况下,INCRBY使用WRAP参数
在这里插入图片描述

溢出控制OVERFLOW [WRAP|SAT|FAIL],
WRAP:使用回绕(wrap around)方法处理有符号整数和无符号整数的溢出情况,
在这里插入图片描述

SAT:使用饱和计算(saturation arithmetic)方法处理溢出,下溢计算的结果为最小的整数值,而上溢计算的结果为最大的整数值,
在这里插入图片描述

FAIL:命令将拒绝执行那些会导致上溢或者下溢情况出现的计算,并向用户返回空值表示计算未被执行

在这里插入图片描述

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

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

相关文章

国家重点研发计划“新型无液氦脑磁图系统研发”项目启动会顺利召开

2023年5月21日&#xff0c;国家重点研发计划“诊疗装备与生物医用材料”重点专项“新型无液氦脑磁图系统研发”项目启动会在京顺利召开。 该项目由北京未磁科技有限公司牵头&#xff0c;与首都医科大学附属北京天坛医院、北京航空航天大学、机械工业仪器仪表综合技术经济研究所…

九、数据仓库详细介绍(元数据)

元数据的文章&#xff0c;网上已经有很多了&#xff0c;元数据相关概念有限所以重复度很高。 我这里只是做个概念汇集&#xff0c;争取给大家介绍的全面一点。 1. 元数据定义 元数据&#xff08;Meta-data&#xff09;是描述数据的数据&#xff08;The data about data&#xf…

怎么提升品牌知名度,小红书母婴赛道分析

小红书平台自创立之初&#xff0c;便以母婴类内容为特色。今天我们来分享下&#xff0c;怎么提升品牌知名度&#xff0c;小红书母婴赛道分析。 一、妈妈用户仍是主流 我们都知道&#xff0c;小红书平台是一个女性用户为主的平台。根据去年的平台用户调查&#xff0c;可以发现&a…

PID控制逻辑基本介绍

PID控制逻辑基本介绍 1. 源由2. PID基本框图3. PID公式变换4. PID参数释义4.1 比例因子Kp4.2 比例积分Ki4.3 比例微分Kd4.4 Kp/Ki关系4.5 Kp/Kd关系 5. 总结6. 附录6.1 了解 PID 控制&#xff0c;第 1 部分&#xff1a;什么是 PID 控制&#xff1f;6.2 Anti-windup for PID con…

【pytorch损失函数(6)】Focal loss, for dense object detection再分析

之前翻译了这篇论文&#xff0c;但是理解还不深。今天借着研究rotation的计划&#xff0c;回顾这篇文章。 论文的主要贡献 Focal loss主要是为了解决目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重&#xff0c;也可理解为一种困难…

Segment Anything专题论文和代码汇总

文章目录 2023Scaling-up Remote Sensing Segmentation Dataset with Segment Anything ModelPersonalize Segment Anything Model with One ShotSegment Anything in Medical ImagesMatcher: Segment Anything with One Shot Using All-Purpose Feature MatchingCustomized Se…

【Python】mmSegmentation语义分割框架教程(1.x版本)

文章目录 0.引言1. 数据集设置1.1. dataset implementation py1.2. dataset config py 2.模型设置3.训练 0.引言 \qquad 本文是mmSegmentation语义分割框架教程&#xff08;0.x版本&#xff09;的1.x版本。不熟悉mmsegmentation是什么的读者可参考原文的引言部分&#xff0c;熟…

sqlmap命令大全(附详细扫描流程)

一、sqlmap命令大全。 -u 指定目标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使用哪个数据库-T 选择使用哪个表-C 选择使用哪个列--dump 获取字段中的数据--…

程序猿想考一个PMP,可以吗,怎么考呢?

我从新考纲考完下来&#xff0c;3A通过了考试&#xff0c;最开始也被折磨过一段时间&#xff0c;但是后面还是找到了方法&#xff0c;也算有点经验&#xff0c;给大家分享一下吧。 程序猿应该是考PMP里面人最多的&#xff0c;毕竟有一个30大坎&#xff0c;大部分人还是考虑转型…

rk3588 大小核启动

setenv ipaddr 10.12.1.205;setenv serverip 10.12.1.200;tftp 0x800000 bsprk3588_owl_ai_box_plus_v10_x64.bin;go 0x800000 rk3588 启动 4 核无问题&#xff0c;启动 8 核出现乱码以及死机问题。 分析代码&#xff0c;对 psci 接口进行更新&#xff0c;启动 4 核&#xf…

【服务器数据恢复】EXT3文件系统下raid数据恢复案例

服务器数据恢复环境&#xff1a; 华为OceanStor某型号存储&#xff0c;10块硬盘组成raid6磁盘阵列。 上层操作系统采用EXT3文件系统&#xff0c;划分2个lun。 服务器故障&分析&#xff1a; 在巡检中发现存储中的raid不可用&#xff0c;管理员进行了重新分配并初始化raid的操…

VS2019 error LNK2001: 无法解析的外部符号 解决方法

今天编译一个项目的时候&#xff0c;用debug模式编译时可以通过并生成exe的。 换成release模式&#xff0c;直接报链接错误&#xff0c;如下&#xff1a; 1>libeay32.lib(pem_lib.obj) : error LNK2019: 无法解析的外部符号 ___iob_func&#xff0c;函数 _PEM_def_callback…

微信小程序| AIGC之动手实现ChatGPT法律顾问小程序

一、需求背景 在资本退去后&#xff0c;现如今的互联网行情很差劲&#xff0c;很多创新业务都不得不砍除。再加上国内互联网时代进入到了一个增量犹显疲态&#xff0c;增量杀红了眼&#xff01;阶段&#xff0c;各大互联网公司均有一种断臂求生的态势&#xff01;各位互联网同…

hadoop3.2.4集成flink 1.17.0

前言 flink安装部署有三种方式 local:单机模式&#xff0c;尽量不使用 standalone: flink自带集群&#xff0c;资源管理由flink集群管理&#xff0c;开发环境测试使用&#xff0c;不需要hadoop集群 flink on yarn: 把资源管理交给yarn实现&#xff0c;计算机资源统一由Haoop…

PCIe 载板设计资料原理图:382-基于FMC+的XCVU3P高性能 PCIe 载板

基于FMC的XCVU3P高性能 PCIe 载板 一、板卡概述 板卡主控芯片采用Xilinx UltraScale16 nm VU3P芯片&#xff08;XCVU3P-2FFVC1517I&#xff09;。板载 2 组 64bit 的DDR4 SDRAM&#xff0c;支持 IOX16或者 JTAG 口&#xff0c;支持PCIe X 16 ReV3.0以及 FMC 扩展接口。…

Hadoop基础学习---6、MapReduce框架原理

1、MapReduce框架原理 1.1 InputFormat数据输入 1.1.1 切片与MapTask并行度决定机制 1、问题引出 MapTask的并行度决定Map阶段的任务处理并发度&#xff0c;进而影响到整个job的处理速度。 2、MapTask并行度决定机制 数据块&#xff1a;Block是HDFS物理上吧数据分成一块一块。…

3D CAD模型的体素化

你有没有搜索过如何将 Cad 模型转换为 python 就绪的 numpy 数组&#xff0c;但没有得到任何明确的答案&#xff1f; 我也是。 经过长时间的研究并尝试了很多软件和 python 库&#xff0c;我终于能够将 3D STEP 文件转换为 3 维 numpy 数组。 如果你想做同样的事情或只是想知道…

线性表的总结

逻辑结构 逻辑结构 具有相同特性的数据元素的有限序列 特性 有穷性&#xff1a;一个线性表的元素个数是有限的 一致性&#xff1a;一个线性表的所有元素的性质相同&#xff0c;也就是具有相同的数据类型 序列性&#xff1a;所有元素之间的相对…

OJ练习第114题——T 秒后青蛙的位置

T 秒后青蛙的位置 力扣链接&#xff1a;1377. T 秒后青蛙的位置 题目描述 给你一棵由 n 个顶点组成的无向树&#xff0c;顶点编号从 1 到 n。青蛙从 顶点 1 开始起跳。规则如下&#xff1a; 在一秒内&#xff0c;青蛙从它所在的当前顶点跳到另一个 未访问 过的顶点&#xf…

十、数据仓库详细介绍(数据质量)流程与工具

上篇我们主要介绍了以下三部分内容。 第一部分&#xff0c;介绍了五种常见的数据管理知识体系&#xff0c;数据质量在所有的知识体系中都有非常重要的地位&#xff0c;数据应用体现数据价值&#xff0c;数据质量为应用提供支撑。 第二部分&#xff0c;我们介绍了数据质量评判的…