【Redis学习_常见基础命令】

Redis学习_常见基础命令

  • Redis学习_常见基础命令
    • 1、通用命令
    • 2、Redis 的Key的操作命令
    • 3、字符串类型的value操作命令
    • 4、哈希类型的value操作命令
    • 5、列表list类型的value操作命令
    • 6、集合类型的value操作命令
    • 7、有序集合类型的value 操作命令

Redis学习_常见基础命令

1、通用命令

  • 【ping】沟通命令,查看状态,返回PONG
root@zimoqiufeng-virtual-machine:/usr/local/redis/redis-7.0.15# redis-cli
127.0.0.1:6379> ping
PONG
  • 【dbsize】查看当前数据库中key的数目
127.0.0.1:6379> dbsize
(integer) 1
  • 【select db】redis 默认十六个库,切换库命令
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> 
  • 【flushdb】删除当前库的数据
127.0.0.1:6379[1]> set guanwanli guanwanli
OK
127.0.0.1:6379[1]> dbsize
(integer) 1
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> dbsize
(integer) 0
127.0.0.1:6379[1]> 
  • 【quit 或exit】退出当前redis 连接
quit
  • 【redis-cli】登录自带redis命令行客户端
redis-cli

2、Redis 的Key的操作命令

-【keys pattern】 查看key

通配符: 
* :表示 0-多个字符 ,例如:keys * 查询所有的 key , *表示 0 或多个字符
?:表示单个字符,例如:wo?d , 匹配 word , wood
127.0.0.1:6379[1]> keys *
1) "woood"
2) "guanwanli"
3) "wood"
4) "word"
127.0.0.1:6379[1]> keys wo*d
1) "woood"
2) "wood"
3) "word"
127.0.0.1:6379[1]> keys wo?d
1) "wood"
2) "word"
127.0.0.1:6379[1]> keys w*******d
1) "woood"
2) "wood"
3) "word"

-【exists key[key…]】 判断key是否存在

exists key
exists key1 key2
127.0.0.1:6379[1]> exists word wood hello
(integer) 2
127.0.0.1:6379[1]> 
  • 【expire key seconds】设置key的生存时间,超过时间,key自动删除。单位是秒
127.0.0.1:6379[1]> expire wood 3
(integer) 1
127.0.0.1:6379[1]> keys *
1) "woood"
2) "guanwanli"
3) "word"
127.0.0.1:6379[1]> 
  • 【ttl key】以秒为单位,返回key的剩余生存时间,返回值 -1:没有设置key的生存时间,key永不过期 -2:key不存在
127.0.0.1:6379[1]> expire woood 100
(integer) 1
127.0.0.1:6379[1]> ttl woood
(integer) 94
127.0.0.1:6379[1]> 
  • 【type key】查看key 所存储值的数据类型返回值:字符串表示的数据类型
    none (key 不存在)
    string(字符串)
    list(列表)
    set(集合)
    zset(有序集)
    hash(哈希表)
127.0.0.1:6379[1]> type word
string
  • 【del key [key…】删除指定存在的 key ,不存在的 key 忽略。返回值:数字,删除的 key 的数量
127.0.0.1:6379[1]> del redis
(integer) 0
127.0.0.1:6379[1]> del word
(integer) 1

3、字符串类型的value操作命令

  • 【set key value】将字符串值 value 设置到 key 中,已经存在的 key 设置新的 value,会覆盖原来的值。
127.0.0.1:6379[1]> set GitCode GitCode
OK
127.0.0.1:6379[1]> set InsCode InsCode
OK
127.0.0.1:6379[1]> set Blog blog
OK

-【get key】 获取 key 中设置的字符串值

127.0.0.1:6379[1]> get GitCode
"GitCode"
  • 【incr key】将 key 中储存的数字值加 1,如果 key 不存在,则 key 的值先被初始化为 0 再执行 incr 操作(只能对数字类型的数据操作)
127.0.0.1:6379[1]> set index 1
OK
127.0.0.1:6379[1]> incr index
(integer) 2
127.0.0.1:6379[1]> get index
"2"
  • 【decr key】将 key 中储存的数字值减1,如果 key 不存在,则么 key 的值先被初始化为 0 再执行 decr 操作(只能对数字类型的数据操作)
127.0.0.1:6379[1]> decr index
(integer) 1
127.0.0.1:6379[1]> decr myindex
(integer) -1
  • 【append key value】 如果 key 存在, 则将 value 追加到 key 原来旧值的末尾如果 key 不存在, 则将再key 设置值为 value,返回值:追加字符串之后的总长度
127.0.0.1:6379[1]> get GitCode
"GitCode"
127.0.0.1:6379[1]> append GitCode 13
(integer) 9
127.0.0.1:6379[1]> get GitCode
"GitCode13"
  • 【strlen key】返回 key 所储存的字符串值的长度返回值:如果key存在,返回字符串值的长度 key不存在,返回0
127.0.0.1:6379[1]> get username
"zhangsan"
127.0.0.1:6379[1]> strlen username
(integer) 8
  • 【getrange key start end】获取 key 中字符串值从 start 开始 到 end 结束 的子字符串,包括 start 和 end,负数表示从字符串的末尾开始, -1 表示最后一个字符返回值:截取的子字符串。
127.0.0.1:6379[1]> get username
"zhangsan"
127.0.0.1:6379[1]> getrange username 1 3
"han"
127.0.0.1:6379[1]> getrange username -3 -2
"sa"
  • 【setrange key offset value】用 value 覆盖(替换)key 的存储的值从 offset开始,不存在的 key 做空白字符串。返回值:修改后的字符串的长度
127.0.0.1:6379> get item
"javaCode"
127.0.0.1:6379> setrange item 2 av
(integer) 8
127.0.0.1:6379> get item
"jaavCode"
  • 【mset key value [key value…]】同时设置一个或多个 key-value 对
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get k2
"v2"
127.0.0.1:6379> get k3
"v3"
  • 【mget key [key …]】获取(一个或多个)给定 key 的值 返回值:包含所有 key 的列表
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

4、哈希类型的value操作命令

  • 【hset hash 表的 key field value】哈希类型field(域 )和 value 的隐射表,value分为field和value,hset可将key中的值设置为value,如果 key 不存在,则新建 hash 表,执行赋值,如果有 field ,则覆盖值。
    返回值:
    如果 field 是 hash 表中新 field,且设置值成功,返回 1
    如果 field 已经存在,旧值覆盖新值,返回 0
127.0.0.1:6379> hset website baidu http://www.baidu.com
(integer) 1
127.0.0.1:6379> hset website baidu www.baidu.com
(integer) 0
127.0.0.1:6379> 
  • 【hget key field】获取哈希表 key 中给定域 field 的值
    返回值:field 域的值,如果 key 不存在或者 field 不存在返回 nil
127.0.0.1:6379> hget website baidu
"www.baidu.com"
127.0.0.1:6379> hget website google
(nil)

-【hmset key field value [field value…]】 同时将多个 field-value (域-值)设置到哈希表 key 中,此命令会覆盖已经存在的 field, 若hash 表 key 不存在,创建空的 hash 表,执行 hmset.
返回值:设置成功返回 ok, 如果失败返回一个错误

127.0.0.1:6379> hmset website baidu http://www.baidu.com google www.google.com
OK
  • 【hmget key field [field…]】获取哈希表 key 中一个或多个给定域的值
    返回值:返回和 field 顺序对应的值,如果 field 不存在,返回 nil
127.0.0.1:6379> hmget website baidu google
1) "http://www.baidu.com"
2) "www.google.com"
  • 【hgetall key】获取哈希表 key 中所有的域和值
    返回值:以列表形式返回 hash 中域和域的值 ,key 不存在,返回空 hash
127.0.0.1:6379> hgetall website
1) "baidu"
2) "http://www.baidu.com"
3) "google"
4) "www.google.com"
  • 【hdel key field [field…]】删除哈希表 key 中指定域 field,不存在 field 直接忽略
    返回值:成功删除的 field 的数量
127.0.0.1:6379> hgetall  website
1) "baidu"
2) "http://www.baidu.com"
3) "google"
4) "www.google.com"
5) "aiqiyi"
6) "www.aiqiyi.com"
127.0.0.1:6379> hdel website aiqiyi
(integer) 1
127.0.0.1:6379> hgetall website
1) "baidu"
2) "http://www.baidu.com"
3) "google"
4) "www.google.com"
  • 【hkeys key】查看哈希表 key 中的所有 field 域
    返回值:包含所有 field 的列表,key 不存在返回空列表
127.0.0.1:6379> hkeys website
1) "baidu"
2) "google"
  • 【hvals key】返回哈希表中所有域的值
    返回值:包含哈希表所有域值的列表,key 不存在返回空列表
127.0.0.1:6379> hvals website
1) "http://www.baidu.com"
2) "www.google.com"
  • 【hexists key field】查看哈希表 key 中,给定域 field 是否存在
    返回值:如果 field 存在,返回 1, 其他返回 0
127.0.0.1:6379> hexists website baidu
(integer) 1

5、列表list类型的value操作命令

  • 【lpush key value [value…]】将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头,返回值:数字,新列表的长度
127.0.0.1:6379> lpush mylist a b c
(integer) 3
  • 【rpush key value [value…]】将一个或多个值 value 插入到列表 key 的表尾(最右边),各个 value 值按从左到右的顺序依次插入到表尾
    返回值:数字,新列表的长度
127.0.0.1:6379> rpush list2 a b c
(integer) 3
  • 【lrange key start stop】 获取列表 key 中指定区间内的元素,0 表示列表的第一个元素,start , stop 是列表的下标值, -1 表示列表的最后一个元素, start ,stop 超出列表的范围不会出现错误。
    返回值:指定区间的列表
127.0.0.1:6379> lpush mylist e f g
(integer) 6
127.0.0.1:6379> lrange mylist 0 5
1) "g"
2) "f"
3) "e"
4) "c"
5) "b"
6) "a"
  • 【lindex key index】查询获取列表 key 中下标为指定 index 的元素,0 表示列表的第一个元素,start , stop 是列表的下标值, -1 表示列表的最后一个元素,
    返回值:指定下标的元素;index 不在列表范围,返回 nil
lindex key index
  • 【llen key】获取列表 key 的长度
    返回值:数值,列表的长度; key 不存在返回 0
127.0.0.1:6379> llen mylist
(integer) 6
  • 【lrem key count value】根据参数 count 的值,移除列表中与参数 value 相等的元素, count >0 ,从列表的左侧向右开始移除; count < 0 从列表的尾部开始移除;count = 0 移除表中所有与 value 相等的值。
    返回值:数值,移除的元素个数
127.0.0.1:6379> lrem course 2 html
(integer) 2
127.0.0.1:6379> lrem course 0 java
(integer) 2
127.0.0.1:6379> lrange course 0 4
1) "mysql"
127.0.0.1:6379> 
  • 【lset key index value】将列表 key 下标为 index 的元素的值设置为 value。
    返回值:设置成功返回 ok ; key 不存在或者 index 超出范围返回错误信息
127.0.0.1:6379> lset letter 2 c
OK
127.0.0.1:6379> lrange letter 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
  • 【linsert key BEFORE|ALFTER pivot value】将值 value 插入到列表 key 当中位于值 pivot 之前或之后的位置。key 不存在,pivot 不在列表中,不执行任何操作。
    返回值:命令执行成功,返回新列表的长度。没有找到 pivot 返回 -1, key 不存在返回 0
127.0.0.1:6379> linsert arch BEFORE dao service
(integer) 3
127.0.0.1:6379> lrange arch 0 -1
1) "view"
2) "service"
3) "dao"

6、集合类型的value操作命令

-【sadd key member [member…]】 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略,不会再加入。
返回值:加入到集合的新元素的个数。不包括被忽略的元素

127.0.0.1:6379> sadd sql update delete select
(integer) 3
127.0.0.1:6379> smembers sql
1) "select"
2) "delete"
3) "update"
  • 【smembers key】获取集合 key 中的所有成员元素,不存在的 key 视为空集合
127.0.0.1:6379> sadd html-tag table href p
(integer) 3
127.0.0.1:6379> smembers html-tag
1) "p"
2) "href"
3) "table"
  • 【sismember key member】判断 member 元素是否是集合 key 的成员
    返回值:member 是集合成员返回 1,其他返回 0
127.0.0.1:6379> sismember course1 spring
(integer) 1
127.0.0.1:6379> sismember course1 redis
(integer) 0
  • 【scard course】获取集合里面的元素个数
    返回值:数字,key 的元素个数。 其他情况返回 0
127.0.0.1:6379> scard course1
(integer) 3
  • 【srem key member [member…]】删除集合 key 中的一个或多个 member 元素,不存在的元素被忽略。
    返回值:数字,成功删除的元素个数,不包括被忽略的元素。
127.0.0.1:6379> srem course1 html
(integer) 1
  • 【srandmember key [count]】只提供 key,随机返回集合中一个元素;提供了 count 时,count 正数, 返回包含 count 个数元素的集合, 集合元素各不相同。count 是负数,返回一个 count 绝对值的长度的集合, 集合中元素可能会重复多次。如果count没填,随机返回一个值
    返回值:一个元素;多个元素的集合
127.0.0.1:6379> srandmember course1 2
1) "spring"
2) "mysql"
127.0.0.1:6379> srandmember course1 2
1) "html"
2) "mysql"
  • 【spop key [count]】随机从集合中删除一个元素, count 是删除的元素个数。
    返回值:被删除的元素,key 不存在或空集合返回 nil
127.0.0.1:6379> spop course1
"html"
127.0.0.1:6379> smembers course1
1) "spring"
2) "mysql"

7、有序集合类型的value 操作命令

  • 【zadd key score member [score member…]】将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果 member 存在集合中,则更新值;score 可以是整数或浮点数
    返回值:数字,新添加的元素个数
127.0.0.1:6379> zadd studentscore 80 zhangsan 92 lisi 75 wangwu
(integer) 3
127.0.0.1:6379> zadd mycourse 82.25 html 75.56 mysql 92.5 java
(integer) 3

-【zrange key start stop [WITHSCORES]】 查询有序集合指定区间内的元素。集合成员按 score 值从小到大来排序。 start, stop 都是从 0 开始。0 是第一个元素,1 是第二个元素。以 -1 表示最后一个成员,-2 表示倒数第二个成员。使用WITHSCORES 选项让 score 和 value 一同返回。
返回值:自定区间的成员集合

显示集合的全部元素,不使用 WITHSCORES 则不显示 score

127.0.0.1:6379> zrange studentscore 0 -1
1) "wangwu"
2) "zhangsan"
3) "lisi"

显示集合全部元素,并使用 WITHSCORES

127.0.0.1:6379> zrange studentscore 0 -1 withscores
1) "wangwu"
2) "75"
3) "zhangsan"
4) "80"
5) "lisi"
6) "92"

显示0,1 二个成员

127.0.0.1:6379> zrange studentscore 0 1 withscores
1) "wangwu"
2) "75"
3) "zhangsan"
4) "80"

排序显示浮点数的 score

127.0.0.1:6379> zrange mycourse 0 -1 withscores
1) "mysql"
2) "75.560000000000002"
3) "html"
4) "82.25"
5) "java"
6) "92.5"
  • 【zrevrange key start stop [WITHSCORES]】返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小) 来排列。其它同 zrange 命令。
    返回值:自定区间的成员集合
127.0.0.1:6379> zrevrange studentscore 0 -1 withscores
1) "lisi"
2) "92"
3) "zhangsan"
4) "80"
5) "wangwu"
6) "75"
  • 【zrem key member [member…]】删除有序集合 key 中的一个或多个成员,不存在的成员被忽略
    返回值:被成功删除的成员数量,不包括被忽略的成员。
127.0.0.1:6379> zrem studentscore wangwu
(integer) 1
127.0.0.1:6379> zrange studentscore 0 -1
1) "zhangsan"
2) "lisi"
  • 【zcard key】获取有序集 key 的元素成员的个数返回值:key 存在返回集合元素的个数, key 不存在,返回 0
127.0.0.1:6379> zadd salary 3000 tom 6500 jack 2000 john
(integer) 3
127.0.0.1:6379> zcard salary
(integer) 3
127.0.0.1:6379> zadd salary 4500 rose
(integer) 1
127.0.0.1:6379> zcard salary
(integer) 4
  • 【zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]】获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括 min 和 max)的成员,有序成员是按递增(从小到大)排序。
    min ,max 是包括在内 , 使用符号 ( 表示不包括。 min , max 可以使用 -inf ,
    +inf 表示最小和最大 limit 用来限制返回结果的数量和区间。 withscores 显示 score 和 value
    返回值:指定区间的集合数据使用的准备数据
127.0.0.1:6379> zrange salary 0 -1 withscores
1) "john"
2) "2000"
3) "tom"
4) "3000"
5) "rose"
6) "4500"
7) "jack"
8) "6500"
127.0.0.1:6379> zrangebyscore salary 2000 4500 withscores
1) "john"
2) "2000"
3) "tom"
4) "3000"
5) "rose"
6) "4500"

显示指定具体区间的集合数据,开区间(不包括 min,max)

127.0.0.1:6379> zrangebyscore salary (2000 (4500 withscores
1) "tom"
2) "3000"

显示整个集合的所有数据

127.0.0.1:6379> zrangebyscore salary -inf +inf withscores
1) "john"
2) "2000"
3) "tom"
4) "3000"
5) "rose"
6) "4500"
7) "jack"
8) "6500"

使用 limit 增加新的数据

127.0.0.1:6379> zrange salary 0 -1 withscores1) "john"2) "2000"3) "tom"4) "3000"5) "marray"6) "3600"7) "rose"8) "4500"9) "jack"
10) "6500"
127.0.0.1:6379> zrangebyscore salary 3000 5000 withscores limit 0 2
1) "tom"
2) "3000"
3) "marray"
4) "3600"

-【zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]】 返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列。其他同 zrangebyscore

127.0.0.1:6379> zrevrangebyscore salary +inf 3000 withscores
1) "jack"
2) "6500"
3) "rose"
4) "4500"
5) "marray"
6) "3600"
7) "tom"
8) "3000"
  • 【zcount key min max】 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max ) 的成员的数量
    工资在 3000-5000 的员工数量
127.0.0.1:6379> zcount salary 3000 5000
(integer) 3

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

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

相关文章

TIOBE 3月编程排行榜出炉:遥遥领先,霸榜第一!

哈喽呀~又到了每个月的语言排行榜啦&#xff01; TIOBE 3月编程语言也已经公布&#xff0c;具体有啥新变化呢&#xff1f;快和我一起往下看~ Python遥遥领先&#xff0c;霸榜第一 先来看看本月排行榜top5的表现。毫无疑问&#xff0c;Python依然遥遥领先&#xff1a; Python 第…

RabbitMQ学习笔记——消息转化器

消息转化器的问题&#xff0c;如果我们发送方发送的数据为引用类型的对象&#xff0c;默认使用的是JDK内部自带的ObjectOutputStream进行对象序列化和反序列化&#xff0c;这样做比较复杂并且不安全。 我们可以引入Jackson来做对象的序列化&#xff0c;可将默认的JDK消息转化器…

Testng认识与配置-全网最简单

总结&#xff1a;testng支持注解&#xff0c;线程池&#xff0c;数据驱动&#xff0c;参数化&#xff0c;强大执行模式&#xff0c;也支持单元测试&#xff0c;功能测试&#xff0c;接口测试 TestNG is a testing framework inspired from JUnit and NUnit but introducing som…

Antd和React使用Upload上传组件自定义上传文件(图片为例)

1.定义结构 <Uploadaccept"image/*"listType"picture-card"fileList{fileList}onChange{onChange}onPreview{onPreview}customRequest{handlePreview}>{fileList.length < 1 && " 上传封面"}</Upload> 2.内容 import t…

Samtec前沿 | 信号发生器 - 决定可靠性的重要因素之一

【摘要/前言】 作为消费者&#xff0c;我们已经开始期待我们的技术达到一个前所未有的可靠性水平。无论是智能手机还是家庭汽车&#xff0c;我们已经开始期待智能电子设备在每次使用时都能在第一时间发挥作用。 【信号和电源发生器至关重要】 现代设备能够提供如此出色的…

外包干了5天,技术明显退步。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

VXLAN学习笔记

声明&#xff1a;该博客内容大部分参考参考链接整理 什么是VXLAN&#xff1f; VXLAN(Virtual Extensible LAN)即虚拟扩展局域网&#xff0c;是大二层网络中广泛使用的网络虚拟化技术。在源网络设备与目的网络设备之间建立一条逻辑VXLAN隧道&#xff0c;采用MAC in UDP的封装方…

Vue+SpringBoot打造大学生相亲网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询会员4.2 查询相亲大会4.3 新增留言4.4 查询新闻4.5 新增新闻 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的大学生相亲网站&#xff0c;包含了会员管理模块、新闻管…

嵌入式系统中端口号的理解与分析

每当看到有人的简历上写着熟悉 tcp/ip, http 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意... 所以这次就来谈谈端口(port), 这个熟悉的陌生人. 在此过程中, 还会谈谈间接层, naming service 等概念, IoC, 依赖倒置等原则以及 TCP 协议…

*地宫取宝c++

题目 输入样例1&#xff1a; 2 2 2 1 2 2 1输出样例1&#xff1a; 2输入样例2&#xff1a; 2 3 2 1 2 3 2 1 5输出样例2&#xff1a; 14 思路 题目说从入口开始&#xff0c;只能向右或向下行走到达右下角&#xff0c;类似“摘花生”这道题的模型。题目又说只有当格子里的宝…

数字化浪潮下的选择:ETU-LINK光模块写码板全新升级至400G

随着光模块市场的蓬勃发展&#xff0c;ETU研发团队致力于不断改进SFP编码工具&#xff0c;以满足日益增长的客户需求。经过不懈努力&#xff0c;我们成功推出了3.0版本的写码板&#xff0c;在硬件和软件方面都进行了全面升级&#xff0c;为用户带来了极大的便利。今天&#xff…

华为鸿蒙系统接入实人认证 蚂蚁蚁盾提供技术支持

随着华为千帆计划持续推进&#xff0c;鸿蒙生态日渐完善。近日&#xff0c;华为自研的鸿蒙操作系统与蚂蚁数科、阿里云合作开发的实人认证产品完成适配。这意味着基于鸿蒙系统开发的 App 可以 0 门槛接入该实人认证产品&#xff0c;鸿蒙用户可以无感享受到和安卓、IOS 系统一样…

一文弄懂空间金字塔池化网络

目录 空间金字塔池化网络是什么&#xff1f; 组成部分和工作原理 具体步骤 ​编辑 主要优点 空间金字塔池化网络是什么&#xff1f; 空间金字塔池化网络&#xff08;Spatial Pyramid Pooling Network&#xff0c;SPPNet&#xff09;是一种用于处理具有不同尺寸和比例的输入…

前端网络相关面试题

1. GET和POST请求的区别 传递参数不同&#xff1a; POST传递的参数在request body中GET传递的参数在url后拼接 GET请求一般用于查询&#xff0c;POST一般用于提交某种信息进行某些修改操作 POST相对GET请求安全 GET请求会被浏览器主动缓存&#xff0c;POST不会&#xff0c;要…

蓝牙耳机哪个好?2024年蓝牙耳机推荐榜单,新手上路!

​面对市场上种类繁多的蓝牙耳机&#xff0c;许多用户感到困惑不解。作为一个耳机爱好者&#xff0c;我根据自己的使用经验&#xff0c;整理了一些我认为值得推荐的蓝牙耳机&#xff0c;希望能为大家在选购时提供一些参考。 一、蓝牙耳机选购指南 1. 佩戴舒适度排名——开放式…

单元测试,写起来到底有多痛?

到底什么是单元测试 这个问题看似非常简单&#xff0c;单元测试嘛&#xff0c;不就是咱们开发自己写些测试类&#xff0c;来测试自己写的代码逻辑对不对。 这句话没有问题&#xff0c;但是不够准确。 首先我们要明白&#xff0c;这个测试二字前面还有两个字&#xff1a; 单元 。…

Windows-WSL2-VSCode+Docker配置C++开发环境

Windows-WSL2-VSCodeDocker配置C开发环境 写在前面 因为在学习工作中&#xff0c;需要不同的编码环境&#xff0c;若将这些不同的开发环境都状态一台设备上&#xff0c;很容易出问题&#xff0c;而且迁移性差&#xff0c;于是计划把不同的开发环境用docker隔离开来&#xff0…

git clone拉取项目报错Filename too long warning:Clone succeeded,but checkout failed

这个坑可太坑了~ 首先原因是&#xff1a;拉取项目中有文件名过大&#xff0c;导致拉取项目中断&#xff0c;文件拉取不完全的情况。 1、报错信息如下&#xff1a; try/*****: Filename too long2、解决方法&#xff0c;找到你要存放代码的文件夹&#xff0c;打开git命令执行…

面向对象编程第一式:封装 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

PMP考试心得,与大家共勉

本人刚刚通过PMP考试&#xff0c;有一些自己的经历&#xff0c;写出来欢迎已经是PMP的兄弟们指正&#xff0c;希望能给正在PMP之路上奔跑的人们一些帮助。 其实很早就听说过PMP认证考试了&#xff0c;但是一直工作很忙没有时间来投入学习考试。因此一直拖到今年夏天才有时间参加…