Redis 7 第二讲 数据类型 基础篇

news2024/11/15 4:16:28

🌹 引导


Commands | Redisicon-default.png?t=N7T8https://redis.io/commands/Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)Redis命令大全,显示全部已知的redis命令,redis集群相关命令,近期也会翻译过来,Redis命令参考,也可以直接输入命令进行命令检索。icon-default.png?t=N7T8http://www.redis.cn/commands.html


  👍 Redis 键


注:命令不区分大小写

KEYS *查看当前库所有的key
EXISTS key判断某个key是否存在
TYPE key查看某个key数据类型
DEL key删除指定key数据
UNLINK key非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作
TTL key查看还剩下多少秒过期,-1表示永不过期,-2 表示已过期
EXPIRE key给指定key设置过期时间
MOVE key dbindex【0-15】将当前数据库的key移动到给定的数据库db中
SELECT dbindex切换数据库【0-15】默认0
DBSIZE切换当前数据库key的数量
FLUSH清空当前库
FLUSHALL清苦所有库
HELP @数据类型查看帮助文档 例如(help @string)

 ① 字符串(string)


理论

  1. Redis基本类型,一个key对应一个value
  2. 二进制安全的,Redis 的string可以包含任何数据;比如说jpg图片或者是序列化对象
  3. 一个key对应value最多可以是512M

实操

SET key value [NX | XX] [GET] [EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]

EX seconds -- 以秒为单位设置过期时间.
PX milliseconds -- 以毫秒为单位设置过期时间.
EXAT timestamp-seconds -- 设置以秒为单位的UNIX时间戳所对应的时间位过期时间.
PXAT timestamp-milliseconds -- 设置以毫秒为单位的UNIX时间戳所对应的时间位过期时间.
NX -- 键不存在时设置键值.
XX -- 键存在时设置键值.
KEEPTTL --保留设置前指定键的生存时间.
GET -- 返回指定键原本的值,若键不存在返回NULL.
1SET key value
设置指定 key 的值。
2GET key
获取指定 key 的值。
3GETRANGE key start end
返回 key 中字符串值的子字符
4GETSET key value
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
5GETBIT key offset
对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
6MGET key1 [key2..]
获取所有(一个或多个)给定 key 的值。
7SETBIT key offset value
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
8SETEX key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
9SETNX key value
只有在 key 不存在时设置 key 的值。
10SETRANGE key offset value
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
11STRLEN key
返回 key 所储存的字符串值的长度。
12MSET key value [key value ...]
同时设置一个或多个 key-value 对。
13MSETNX key value [key value ...]
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
14PSETEX key milliseconds value
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。
15INCR key
将 key 中储存的数字值增一。
16INCRBY key increment
将 key 所储存的值加上给定的增量值(increment) 。
17INCRBYFLOAT key increment
将 key 所储存的值加上给定的浮点增量值(increment) 。
18DECR key
将 key 中储存的数字值减一。
19DECRBY key decrement
key 所储存的值减去给定的减量值(decrement) 。
20APPEND key value
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

最常用

SET 

获取时间戳

 

KEEPTTL:保留当前key上一次设置的过期时间

设置/获取多键值对 

 MSET

 

 MSETNX

整体操作,要么都成功,要么都失败

 

获取范围内的值 

GETRANGE  

GETRANGE k start end:start ,end 是下标索引 (GETRANGE  key 0 -1 表示整个字符串)

 

SETRANGE 

SETRANGE k index v:往k对应的value中索引位置在index后插入v (SETRANGE k1 2 xyz)

数值增减 

值一定是数字才能进行加减 

INCR

 

INCRBY

 

DECR

 

DECRBy

 获取字符串长度和内容追加

STRLEN

 STRLEN k

APPEND 

APPEND k v 

 

 分布式锁

SETNX SETEX

setex(set with expire)键秒值/setnx(set if not exist) 

GETSET 

 

1.3  应用场景

商品点赞,阅读量等 

 

② 数组(list)

1. 理论

 Redis 列表是简单的字符串列表,按照插入顺序排序。可在头部(左边)或者尾部(右边)添加元素,最多可包含2^32-1个元素(4294967295,每个列表超过40亿个元素)

主要功能是push/pop等,一般用在栈、队列、消息队列等

它的底层是一个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能较差 

2. 实操

1BLPOP key1 [key2 ] timeout
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
2BRPOP key1 [key2 ] timeout
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
3BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
4LINDEX key index
通过索引获取列表中的元素
5LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
6LLEN key
获取列表长度
7LPOP key
移出并获取列表的第一个元素
8LPUSH key value1 [value2]
将一个或多个值插入到列表头部
9LPUSHX key value
将一个值插入到已存在的列表头部
10LRANGE key start stop
获取列表指定范围内的元素
11LREM key count value
移除列表元素
12LSET key index value
通过索引设置列表元素的值
13LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
14RPOP key
移除列表的最后一个元素,返回值为移除的元素。
15RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
16RPUSH key value1 [value2]
在列表中添加一个或多个值到列表尾部
17RPUSHX key value
为已存在的列表添加值
18DECR key
将 key 中储存的数字值减一。
19DECRBY key decrement
key 所储存的值减去给定的减量值(decrement) 。
20APPEND key value
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

LPUSH/RPUSH/LRANGE

LPOP/RPOP

LINDEX

 按照索引下标获取元素(从上往下)

LLEN

 获取列表中元素个数

 

LREM

 LREM key num val: 删除num个val值

 

LTRIM

LTRIM key 开始index 结束index:截取指定范围的值后赋值给当前key

 

RPOPLPUSH

 RPOPLPUSH 源列表 目标列表

LSET

 LSET key index value:在index位置设置value

 

LINSERT

LINSERT key before/after 已有值 插入新的值

LINSERT list1 before  11 mysql :往list1集合中11这个值的前面插入mysql

 3. 应用场景

微信公众号:订阅的公众号
LPUSH lxs:artcle001  no1 no2 no3 订阅

LRANGE  lxs:artcle001 0 9   分页查询

 ③ 哈希(hash)

1. 理论

Redis Hash 是一个String类型的field(字段) 和value(值) 的映射表,hash 特别适合存储对象。

Redis 中的每个Hash 可以存储2^32-1键值对(40多亿)。比如:k1 field1 v1

类似Java中的 Map<String,Map<String,object>>

2. 实操

1HDEL key field1 [field2]
删除一个或多个哈希表字段
2HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。
3HGET key field
获取存储在哈希表中指定字段的值。
4HGETALL key
获取在哈希表中指定 key 的所有字段和值
5HINCRBY key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment 。
6HINCRBYFLOAT key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
7HKEYS key
获取哈希表中的所有字段
8HLEN key
获取哈希表中字段的数量
9HMGET key field1 [field2]
获取所有给定字段的值
10HMSET key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。
11HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。
12HSETNX key field value
只有在字段 field 不存在时,设置哈希表字段的值。
13HVALS key
获取哈希表中所有值。
14HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。

HSET HGET HMSET HMGET HGETALL HDEL 

HLEN

 

HEXISTS 

HKEYS HVALS

  

HINCRBY HINCRBYFLOAT

 

HSETNX

3. 应用场景 

功能操作命令
购物车新增商品HSET shopcar:uid1024  goodId_001 1
新增商品HSET shopcar:uid1024  goodId_002 1
增加商品数量HINCRBY  shopcar:uid1024  goodId_001 1
商品种类总数HLEN shopcar:uid1024
全选HGETALL shopcar:uid1024

④ 集合(set)

1. 理论

 Reids 的 Set 是 String 类型的集合。集合成员是唯一的,集合中不会存在重复数据,集合对象的编码可以是 intset 或者 hashtable .

Redis 中 Set 集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)。

集合中最大的成员数是2^32-1(4294967295,每个列表超过40亿个元素)·

2. 实操

1SADD key member1 [member2]
向集合添加一个或多个成员
2SCARD key
获取集合的成员数
3SDIFF key1 [key2]
返回第一个集合与其他集合之间的差异。
4SDIFFSTORE destination key1 [key2]
返回给定所有集合的差集并存储在 destination 中
5SINTER key1 [key2]
返回给定所有集合的交集
6SINTERSTORE destination key1 [key2]
返回给定所有集合的交集并存储在 destination 中
7SISMEMBER key member
判断 member 元素是否是集合 key 的成员
8SMEMBERS key
返回集合中的所有成员
9SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合
10SPOP key
移除并返回集合中的一个随机元素
11SRANDMEMBER key [count]
返回集合中一个或多个随机数
12SREM key member1 [member2]
移除集合中一个或多个成员
13SUNION key1 [key2]
返回所有给定集合的并集
14SUNIONSTORE destination key1 [key2]
所有给定集合的并集存储在 destination 集合中
15SSCAN key cursor [MATCH pattern] [COUNT count]
迭代集合中的元素
16RPUSH key value1 [value2]
在列表中添加一个或多个值到列表尾部
17RPUSHX key value
为已存在的列表添加值
18DECR key
将 key 中储存的数字值减一。
19DECRBY key decrement
key 所储存的值减去给定的减量值(decrement) 。
20APPEND key value
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

SADD SMEMBERS

 

SISMEMBER

 

SREM

 

SCARD

 

SRANDMEMBER

 

SPOP

 

SMOVE

 

3. 集合运算

差集 A-B(SDIFF)

 

SDIFF user:001 user:002

求集合差集,属于user:001但不属于user:002的元素

并集 A ∪ B(SUNION)

 

SUNION user:001 user:002

属于user:001或user:002 集合元素

交集 A ∩ B(SINTER)

 

SINTER user:001 user:002

属于user:001且属于user:002的元素 

SINTERCARD 2  user:001 user:002 limit 4

统计2个集合元素,限制返回数量4(超出时,返回最大值),返回集合元素关系属于user:001且属于user:002的元素

4. 应用场景

抽奖小程序

用户ID,立即参与按钮SADD cp user:001
显示有参与人数SCARD cp
抽奖(从set中任意选取N个中奖人)

SRANDMEMBER cp 2 随机选取两人,不移除选中人

SPOP cp 3 随机选择三个中奖人并从集合中移除

微信朋友圈查看同赞好友

新增点赞SADD pub:msgID  user:001 user:002
取消点赞SREM pub:msgID user:001
显示所有点赞用户SMEMBER pub:msgID
点赞用户统计SCARD pub:msgID
判断某个好友是否点赞SISMEMBER pub:msgID user:003

内推可能认识的人

用户1 认识的人SADD user:001  u1 u2 u3 u4u1 u2 u3 u4
用户2 认识的人SADD user:002  u3 u4 u5u3 u4 u5
用户1 用户2 共同认识的人(user:001∩ user:002)SINTER user:001 user:002  u3 u4
用户1认识,用户2 不认识(user:001-user:002)SDIFF user:001 user:002  u1 u2
用户1不认识,用户2 认识(user:002-user:001)SDIFF user:002 user:001 u5
用户1认识或者用户2 认识(user:001∪ user:002)SUNIONuser:002 user:001u1 u2 u3 u4 u5

⑤ 有序集合(sorted set ->zset)

1. 理论

 Redis Zset 和Set 一样,也是String 类型元素的集合,且不允许元素重复。

不同的是每个元素都会关联一个double 类型的分数,Redis 通过分数为集合成员进行从小到大排序。

Zset 的成员是唯一的,但是分数(score)却可以重复

Zset 集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)。集合最大成员2^32-1

k1 score1 v1 score2 v2

2. 实操

1ZINTERSTORE destination numkeys key [key ...]
计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 destination 中
2ZLEXCOUNT key min max
在有序集合中计算指定字典区间内成员数量
3ZRANGEBYLEX key min max [LIMIT offset count]
通过字典区间返回有序集合的成员
4ZREMRANGEBYLEX key min max
移除有序集合中给定的字典区间的所有成员
5ZREMRANGEBYRANK key start stop
移除有序集合中给定的排名区间的所有成员
6ZREMRANGEBYSCORE key min max
移除有序集合中给定的分数区间的所有成员
7ZUNIONSTORE destination numkeys key [key ...]
计算给定的一个或多个有序集的并集,并存储在新的 key 
8ZSCAN key cursor [MATCH pattern] [COUNT count]
迭代有序集合中的元素(包括元素成员和元素分值)

ZADD

ZADD key score1 member1 [score2 member2]
向有序集合添加一个或多个成员,或者更新已存在成员的分数

 ZADD users 60 user:001 70 user:002 80 user:003 90 user:004 100 user:005

ZRANGE

ZRANGE key start stop [WITHSCORES]
通过索引区间返回有序集合指定区间内的成员

 

ZRANGE users 0 -1 withscores

ZREVRANGE

ZREVRANGE key start stop [WITHSCORES]
返回有序集中指定区间内的成员,通过索引,分数从高到低

 

ZREVRANGE users 0 -1 [withscores]

ZRANGEBYSCORE

ZRANGEBYSCORE key min max [WITHSCORES][limit offset count ]
获取指定分数范围的元素。withscores 显示分数,limit 返回限制,'(' 作用不包含

 

 ZRANGEBYSCORE users (70 90 withscores limit 0 2

ZSCORE

ZSCORE key member
返回有序集中,成员的分数值

 ZSCORE users user:002

ZCARD

ZCARD key
获取有序集合的成员数

 ZCARD users

ZREM

ZREM key member [member ...]
移除有序集合中的一个或多个成员

ZREM users user:001

ZINCRBY

ZINCRBY key increment member
有序集合中对指定成员的分数加上增量 increment

ZINCRBY users 2 user:002

ZCOUNT

ZCOUNT key min max
计算在有序集合中指定区间分数的成员数

ZCOUNT users 70 90

ZMPOP

7.0版本ZMPOP key min max
从键名列表中的第一个非空排序集中弹出一个或者多个元素,每个元素都是成员分数对

 ZMPOP 1 users min count 1

 ZRANK

ZRANK key member
返回有序集合中指定成员的索引

ZRANK users user:002

ZREVRANK

ZREVRANK key member
返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

 ZREVRANK users user:003

 应用场景

热销商品排序商品编号1001销量 9,1002 销量15ZADD goods:sellsort 9 1001 15 1002
客户下单买了1001 x2 ZINCRBY goods:sellsort 2 1001
商品前10 ZRANGE goods:sellsort 0 9 withscores

🌹 以上分享 Redis 数据类型 基础篇,如有问题请指教写。

🌹🌹 如你对技术也感兴趣,欢迎交流。

🌹🌹🌹  如有需要,请👍点赞💖收藏🐱‍🏍分享 

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

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

相关文章

竟大规模放弃复试!你未战先怯,别跑!

一、学校及专业介绍 长沙理工大学简称长沙理工&#xff08;CSUST&#xff09;&#xff0c;位于湖南省长沙市&#xff0c;国家交通运输部和湖南省人民政府共建高校&#xff0c;湖南省“双一流”建设高校&#xff0c;学校由原国家交通部所属的长沙交通学院和原国家电力公司&…

高频面试题:如何分别用三种姿势实现三个线程交替打印0到100

最近面试遇到的一道题&#xff0c;需要三个线程交替打印0-100&#xff0c;当时对多线程并不是很熟悉因此没怎么写出来&#xff0c;网上搜了之后得到现 synchronized wait/notifyAll 实现思路&#xff1a;判断当前打印数字和线程数的取余&#xff0c;不等于当前线程则处于等待…

前端:横向滚动条,拖动进行左右滚动(含隐藏滚动条)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

【算法系列篇】位运算

文章目录 前言什么是位运算算法1.判断字符是否唯一1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 丢失的数字2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 两数之和3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 只出现一次的数字4.1 题目要求4.2 做题思路4.3 Java代码实现 5.…

数据库范式以及drop、delete 与 truncate区别

数据库范式了解吗? 我们从一个数据库设计的初始化阶段开始, 但是并没有规范化设计的背景知识 而要求我们设计一个员工管理系统, 可能得到表结构如下: 数据异常 首先这个表有如下问题: 1. 数据冗余: 我们可以看到部门名称相同时, 部门地址也是重复的 因此会重复存储数据 …

【UE5】给模型指定面添加自定义材质

实现步骤 1. 首先我们向UE中导入一个简单的模型&#xff0c;可以看到目前该模型的材质插槽只有一个&#xff0c;当我们修改材质时会使得模型整体的材质全部改变&#xff0c;如果我们只想改变模型的某些面的材质就需要继续做后续操作。 2. 选择建模模式 3. 在模式工具栏中点击…

手机改图片文字软件有哪些?简单分享这几款

手机改图片文字软件有哪些&#xff1f;现在有很多手机APP可以帮助我们实现图片中文字的提取和修改&#xff0c;但是其中一些工具可能会缺乏一些必要的功能&#xff0c;或者不太适合某些特定的用途。在这篇文章中&#xff0c;我们将介绍几款非常实用的手机改图片文字软件。 第一…

复杂性管理与重复性管理

在前面我们说到了所谓的"计算机科学", 重点在于如何控制大型系统的复杂性. 复杂性本身当然也是个很大的话题, 而一种常见的复杂性的来源则是重复性, 即是由不断的重复所带来的复杂性. 重复性带来的复杂性常被人忽视, 大概是因为一开始它是不起眼的, 而当人们意识到它…

软技能的重要性:在面试中展示团队合作与沟通能力

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

2023年下半年西安/广州/深圳软考(中/高级)开班啦!!!

软考是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资格考试。 系统集成项…

​LeetCode解法汇总1448. 统计二叉树中好节点的数目

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给你一棵…

初识Java 3-1 控制流

目录 if-else语句 迭代语句 for循环 for-in语法 return break和continue 标签机制 switch 本笔记参考自&#xff1a; 《On Java 中文版》 Java不允许将数字作为布尔值使用&#xff0c;若需要在一些条件语句中使用一个非布尔值&#xff0c;比如if(a)&#xff0c;那么就需…

美团北极星榜单,服务零售的医美新样本

事实证明&#xff0c;任何时候&#xff0c;人们对美的追求都是刚需&#xff0c;只是有时候被压抑了。 德勤中国的《中国医美行业2023年度洞悉报告》&#xff08;以下简称“报告”&#xff09;显示&#xff0c;中国医美市场规模预计在2023年超过2000亿元&#xff0c;实现20%增速…

残差网络、Dropout正则化、Batch Normalization浅了解

残差网络&#xff1a; 为什么需要残差网络&#xff1a; 残差网络的目的是为了解决深度神经网络在训练过程中遇到的退化问题&#xff0c;即随着网络层数的增加&#xff0c;训练集的误差反而增大&#xff0c;而不是过拟合。残差网络的优点有以下几点&#xff1a; 残差网络可以…

上门服务系统|上门服务软件开发|上门服务改善生活质量的便捷之选

随着现代生活的快节奏和社交距离的需求&#xff0c;我们越来越渴望能够以更便捷、高效的方式获得我们所需的服务。为了满足这一需求&#xff0c;我们公司开发了一款创新的上门服务系统&#xff0c;旨在将便利与质量相结合&#xff0c;为您提供无与伦比的体验。 无论您是忙碌的白…

惠普NS1020激光打印机碳粉警告提示及添加碳粉方法

本文也适用于惠普NS1020、1020c 和 1020w 系列打印机。 通过碳粉量指示灯检查碳粉量。 如果碳粉量是满的或指示器显示 1&#xff0c;可选择添加一个碳粉或者忽略不添加。如果碳粉量指示灯显示 2或 2 和碳粉量警告感叹号图标 &#xff0c;则表示碳粉量不足或严重不足&#xff0…

ORACEL 账户被锁定、无监听

现象1&#xff1a;oracle数据库账号被锁定 OA页面情况&#xff1a;OA系统可以正常登录&#xff0c;但是表单查不出数据 PL SQL 连接情况&#xff1a;有明确的提示&#xff0c;oracle账号被锁。 Tomcat控制台情况&#xff1a;有明确提示账号被锁 解决办法 在命令行中输入就可…

批量身份证图片转Excel,核验真伪,保留头像,只需一款软件

你是否曾经遇到过需要将大量员工的身份证图片转化为Excel表格的情况&#xff1f;这种情况可能会让你感到无从下手。但是&#xff0c;现在有了金鸣表格文字识别电脑客户端&#xff0c;一切都将变得轻松便捷。 首先&#xff0c;你只需要前往金鸣识别官网下载并安装金鸣表格文字识…

企业网络设备监控工具

如今&#xff0c;组织在运营业务方面面临着日益激烈的竞争和日益复杂的问题&#xff0c;在这种情况下&#xff0c;拥有以最高效率运行的网络基础设施不再是奢侈品。相反&#xff0c;对于任何希望在各自领域成为领跑者的组织来说&#xff0c;这是必要的。网络基础设施中每个网络…

python爬虫14:总结

python爬虫14&#xff1a;总结 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论&#xff0c;并不会对网站产生不好…