Redis学习目录

    • 一、NoSQL
    • 二、什么是Redis?
    • 三、redis的功效及应用场景
      • 应用场景
    • 四、Redis常用命令
      • 4.1、Key-String
      • 4.2、Key-Hash
      • 4.3、Key-List
      • 4.4、Key-Set
      • 4.5、Key-Zset
      • 4.6、key的常用命令
      • 4.7、库的常用命令
    • 五、Java连接Redis
    • 六、Redis的其他配置及集群
      • 6.1 Redis 的 AUTH
      • 6.2 面试官:Redis到底有没有事务 ?
      • 6.3、Redis的持久化机制
      • 6.4、Redis的主从架构
      • 6.5、Redis的哨兵
      • 6.6、Redis的集群
    • 七、面试常问
      • 7.1、key的生存时间到了,Redis会立即删除吗?
      • 7.2、Redis的淘汰机制
      • 7.3、缓存常见问题
        • 1、缓存穿透
        • 2、缓存击穿
        • 3、缓存雪崩(缓存失效)
        • 4、缓存倾斜

一、NoSQL

NoSQL学习点击

二、什么是Redis?

Redis (Remote Dictionary Server)即远程字典服务,Redis是由C语言去编写,Redis是一款基于Key-Value的NoSQL,而且Redis是 基于内存存储数据的,Redis还提供了多种持久化机制,性能可以达到110000/s读取数据以及81000/s写入数据,Redis还提供了主 从,哨兵以及集群的搭建方式,可以更方便的横向扩展以及垂直扩展。

有一位意大利人,在开发一款LLOOGG的统计页面,因为MySQL的性能不好,自己研发了一款非关系型数据库,并命名为Redis。这个人就是Antirez(Salvatore Sanfilippo)。
在这里插入图片描述

三、redis的功效及应用场景

Redis能够解决传统关系型数据库在高并发的情况下读写过慢的问题,是一种以key-value形式存储数据的一款nosql关系型数据库之一,它支持多种数据结构,常用的五种数据结构主要如下:

数据结构 描述
key-string —个 key 对应一个值
key-hash :—个 key 对应一个 Map
key-list 一个key对应一个列表
key-set —个key对应一个集合
key-zset 一个key对应一个有序的集合

另外三种数据结构(比较少用):

数据结构 描述
HyperLogLog 计算近似值的
GEO 地理位置
BIT 一般存储的也是一个字符串,存储的是一个byte[]

在这里插入图片描述

应用场景

  • 1.好友点赞
  • 2.热点数据缓存
  • 3.社交网络
  • 4.排行榜

四、Redis常用命令

4.1、Key-String

存储的数据结构如下:
在这里插入图片描述

1.添加值

set key value
例如:set name zhangsan

2.取值

get key
例如:get name

3 .批量操作

mset key value [key value…]
例如:mset name zhangsan age 18
mget key [key…]
例如:mget name age

4.自增命令(自增1)

incr key
例如:incr age

5.自减命令(自减1)

deer key
例如:deer age

6.自增或自减指定数量

inerby key increment
deerby key increment
例如:inerby age 2

7.设置值的同时,指定生存时间(每次向Redis中添加数据时,尽量都设置上生存时间)

setex key second value
例如:setex name 30 zhangsan

8.设置值,如果当前key不存在的话(如果这个key存在,什么事都不做,如果这个key不存在,和set命令一样)

setnx key value
例如:setnx name zhangsan

9.在key对应的value后,追加内容

append key value
例如:append name san 结果name为:zhangsansan

10.查看value字符串的长度

strlen key
例如:strlen name

4.2、Key-Hash

存储的数据结构如下:

在这里插入图片描述

1.存储数据

hset key field value

2,获取数据

hget key field

3 .批量操作

hmset key field value [field value …]
hmget key field [field …]

4.自增(指定自增的值)

hincrby key field increment

5.设置值(如果key-field不存在,那么就正常添加,如果存在,什么事都不做)

hsetnx key field value

6.检查field是否存在

hexists key field

7.删除key对应的field,可以删除多个

hdel key field [field …]

8.获取当前hash结构中的全部field和value

hgetall key

9.获取当前hash结构中的全部field

hkeys key

10.获取当前hash结构中的全部value

hvals key

11.获取当前hash结构中field的数量

hlen key

4.3、Key-List

存储的数据结构如下
在这里插入图片描述

1.存储数据(从左侧插入数据,从右侧插入数据)

Ipush key value [value …]
rpush key value [value …]

2.存储数据(如果key不存在,什么事都不做,如果key存在,但是不是list结构,什么都不做)

Ipushx key value
rpushx key value

3.修改数据(在存储数据时,指定好你的索引位置,覆盖之前索引位置的数据,index超出整个列表的长度,也会失败)

Iset key index value

4 .弹栈方式获取数据(左侧弹出数据,从右侧弹出数据)

Ipop key
rpop key

5.获取指定索引范围的数据(start从。开始,stop输入-1,代表最后一个,-2代表倒数第二个)

Irange key start stop

6.获取指定索引位置的数据

lindex key index

7.获取整个列表的长度

lien key

8.删除列表中的数据(他是删除当前列表中的count个value值,count >。从左侧向右侧删除,count <。从右侧向左侧删除,count ==。删除列表中 全部的value)

Irem key count value

9.保留列表中的数据(保留你指定索引范围内的数据,超过整个索引范围被移除掉)

Itrim key start stop

10.将一个列表中最后的一个数据,插入到另外一个列表的头部位置

rpoplpush listl list2

4.4、Key-Set

存储的数据结构如下(无序不可以重复
在这里插入图片描述

1.存储数据

sadd key member [member …]

2,获取数据(获取全部数据)

smembers key

3.随机获取一个数据(获取的同时,移除数据,count默认为1,代表弹出数据的数量)

spop key [count]

4.交集(取多个set集合交集)

sinter set1 set2

5.并集(获取全部集合中的数据)

sunion set1 set2 …

6.差集(获取多个集合中不一样的数据)

sdiff setl set2 …

7.删除数据

srem key member [member …]

8,查看当前的set集合中是否包含这个值

sismember key member

4.5、Key-Zset

1.添加数据(score必须是数值。member不允许重复的。)

zadd key score member [score member …]

2.修改member的分数(如果member是存在于key中的,正常增加分数,如果memeber不存在,这个命令就相当于zadd)

zincrby key increment member

3.查看指定的member的分数

zscore key member

4.获取zset中数据的数量

zcard key

5.根据score的范围查询member数量

zcount key min max

6.删除zset中的成员

zrem key member [member…]

7.根据分数从小到大排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数)

zrange key start stop [withscores]

8.根据分数从大到小排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数)

zrevrange key start stop [withscores]

9.根据分数的返回去获取member(withscores代表同时返回score,添加limit,就和MySQL中一样,如果不希望等于min或者max的值被查询出来可以采 用’(分数’相当于 < 但是不等于的方式,最大值和最小值使用和-:Lnf来标识)

zrangebyscore key min max [withscores] [limit offset count]

10.根据分数的返回去获取member(withscores代表同时返回score,添加limit,就和MySQL中一样)

zrangebyscore key max min [withscores] [limit offset count]

4.6、key的常用命令

1 .查看Redis中的全部的key (pattern: * , xxx*, *xxx)

keys pattern

2.查看某一个key是否存在(1 - key存在,0 - key不存在)

exists key

3.删除key

del key [key …]

4.设置key的生存时间,单位为秒,单位为毫秒,设置还能活多久

expire key second
pexpire key milliseconds

5.设置key的生存时间,单位为秒,单位为毫秒,设置能活到什么时间点

expireat key timestamp
pexpireat key milliseconds

6.查看key的剩余生存时间,单位为秒,单位为毫秒(-2 -当前key不存在,-1 -当前key没有设置生存时间,具体剩余的生存时间)

ttl key
pttl key

7.移除key的生存时间(1 -移除成功,。- key不存在生存时间,key不存在)

persist key

8.选择操作的库

select 。〜15

9.移动key到另外一个库中

move key db

4.7、库的常用命令

1.清空当前所在的数据库

flushdb

2.清空全部数据库

flushall

3.查看当前数据库中有多少个

key dbsize

4.查看最后一次操作的时间

lastsave

5.实时监控Redis服务接收到的命令

monitor

五、Java连接Redis

   点击查看java连接redis

六、Redis的其他配置及集群

6.1 Redis 的 AUTH

Redis的AUTH是Redis的一种密码校验方式,可以通过两种方式来开启Redis的AUTH功能

方式一:通过修改Redis的配置文件,实现Redis的密码校验

#redis.conf
requirepass 密码

添加验证之后三种客户端的连接方式

  • redis-cli:在输入正常命令之前,先输入auth密码即可。
  • 图形化界面:在连接Redis的信息中添加上验证的密码。
  • Jedis客户端:
    jedis.auth(password);
  • 使用JedisPoo啲方式
    //使用当前有参构造设置密码
    public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,int timeout, final String password)

方式二:在不修改redis.conf文件的前提下,在第一次链接Redis时,输入命令:Config set requirepass密码
后续向再次操作Redis时,需要先AUTH做一下校验。

6.2 面试官:Redis到底有没有事务 ?

在这里插入图片描述

在学习传统的关系型数据库的时候就一直听说Redis是不支持事务的,但其实Redis是有自己的事务的,但是这个事务和mysql等数据库的事务不一样,不具备有ACID的特性

Redis的事务:一次事务操作,该成功的成功,该失败的失败。

先幵启事务,执行一些列的命令,但是命令不会立即执行,会被放在一个队列中,如果你执行事务,那么这个队列中的命令全部执 行,如果取消了事务,一个队列中的命令全部作废。

使用事务的步骤:

  • 1、开启事务:multi
  • 2、输入要执行的命令:被放入到一个队列中
  • 3、执行事务:exec
  • 4、取消事务:discard

Redis的事务想发挥功能,需要配置watch监听机制
在幵启事务之前,先通过watch命令去监听一个或多个key,在开启事务之后,如果有其他客户端修改了我监听的key,事务会自动取 消。
如果执行了事务,或者取消了事务,watch监听自动消除,一般不需要手动执行unwatcho

6.3、Redis的持久化机制

Redis的持久化机制有两种,分别是RDB和AOF

一、RDB持久化机制

RDB是Redis默认的持久化机制,它根据一定时间内的操作变化来决定是否进行持久化

  • RDB持久化文件,速度比较快,而且存储的是一个二进制的文件,传输起来很方便。
  • RDB持久化的时机:
    save 900 1:在900秒内,有1个key改变了,就执行RDB持久化。
    save 300 10:在300秒内,有10个key改变了,就执行RDB持久化。
    save 60 10000:在60秒内,有10000个key改变了,就执行RDB持久化。
  • RDB无法保证数据的绝对安全。

RDB机制无法保证数据的绝对安全是因为这个机制不是实时将数据序列化到磁盘上的,如果在还没有持久化的时候服务器宕机的话就有可能会丢失数据

二、AOF持久化机制

AOF持久化机制默认是关闭的,Redis官方推荐同时开启RDB和AOF持久化,更安全,避免数据丢失。

  • AOF持久化的速度,相对RDB较慢的,存储的是一个文本文件,到了后期文件会比较大,传输困难。
  • AOF持久化时机。
    appendfsync always:每执行一个写操作,立即持久化到AOF文件中,性能比较低。appendfsync everysec:每秒执行一次持久 化。appendfsync no:会根据你的操作系统不同,环境的不同,在一定时间内执行一次持久化。
  • AOF相对RDB更安全,推荐同时幵启AOF和RDB。

三、注意事项

如果同时幵启了AOF和RDB持久化,那么在Redis宕机重启之后,需要加载一个持久化文件,优先选择AOF文件。
如果先开启了RDB,再次开启AOF,如果RDB执行了持久化,那么RDB文件中的内容会被AOF覆盖掉。

6.4、Redis的主从架构

单机版的Redis存在读写的瓶颈,一个Redis的服务器在面对高并发的时候也依然会可能存在宕机的风险,于是我们可以通过横向扩展,部署主从架构来缓解这个问题,但是主从架构只能缓解读取数据的压力。

主从架构图:

在这里插入图片描述

配置文件yml

version: “3.1“
services:
redisl:
image: daocloud.io/library/redis:5.0.7
restart: always
container_name: redisl
environment:
-TZ=Asia/Shanghai
ports:
-7001:6379
volumes:
-./conf/redisl.conf:/usr/local/redis/redis.conf command: ["redis-server","/usr/local/redis/redis.conf"] redis2:
image: daocloud.io/library/redis:5.0.7
restart: always
container_name: redis2 environment:
-TZ=Asia/Shanghai
ports:
-7002:6379
volumes:
-・/conf/redis2.conf:/usr/local/redis/redis.conf links:
-redisl:master
command: ["redis-server","/usr/local/redis/redis.conf"] redis3:
image: daocloud.io/library/redis:5.0.7 restart: always
container_name: redis3
environment:
-TZ=Asia/Shanghai
ports:
-7003:6379
volumes:
-./conf/redis3.conf:/usr/local/redis/redis.conf links:
-redisl:master
command: ["redis-server","/usr/local/redis/redis.conf"]
# redis2和redis3从节点配置 replicaof master 6379

6.5、Redis的哨兵

哨兵可以帮助我们解决主从架构中的单点故障问题

哨兵的大概意思就是在每一个主从架构的节点上添加一个哨兵,这些哨兵相互之间是会进行通讯的,大体框架图如下:

在这里插入图片描述
比如Redis1这个主节点宕机了,这时候Redis1的哨兵就会将这个宕机的消息告诉其他的哨兵,然后哨兵之间就会进行一次投票,将从节点总数据最多的一个节点选为新的主节点,通过这个方式来保证这个主从架构的正常运行。

配置如下:

version: "3.1"
services:
redisl:
image: daocloud.io/library/redis:5.0.7
restart: always
container.name: redisl
environment:
-TZ=Asia/Shanghai
ports:
-7001:6379
volumes:
-./conf/redisl.conf:/usr/local/redis/redis.conf
-./conf/sentinell .conf :/data/sentinel.conf	# 添加的内容
command: ["redis-server","/usr/local/redis/redis.conf"]
redis2:
image: daocloud.io/library/redis:5.0.7
restart: always
container.name: redis2
environment:
-TZ=Asia/Shanghai
ports:
-7002:6379
volumes:
-./conf/redis2.conf:/usr/local/redis/redis.conf
-./conf/sentinel2. conf : /data/sentinel. conf	# 添加的内容
links:
-redisl:master
command: ["redis-serverM"/usr/local/redis/redis.conf"]
redis3:
image: daocloud.io/library/redis:5.0.7
restart: always
container_name: redis3 environment:
-TZ=Asia/Shanghai
ports:
-7003:6379
volumes:
-./conf/redis3.conf:/usr/local/redis/redis.conf
-./conf/sentinel3.conf :/data/sentinel.conf	# 添加的内容
links:
-redisl:master
command: ["redis-server","/usr/local/redis/redis.conf"]

准备哨兵的配置文件,并且在容器内部手动启动哨兵即可

#哨兵需要后台启动
daemonize yes
#指定Master节点的ip和端口 sentinel monitor master
#指定Master节点的ip和端口 sentinel monitor master
#哨兵每隔多久监听一次redis架构
sentinel down-after-milliseconds mymaster 1G000
在Redis容器内部启动sentinelBP可
redis-sentinel sentinel.conf

6.6、Redis的集群

Redis集群在保证主从加哨兵的基本功能之外,还能够提升Redis存储数据的能力。

在这里插入图片描述

  1. Redis集群是无中心的。
  2. Redis集群有一个ping-pang机制。(用于集群中各个节点相互通信,判断某个节点是否瘫痪)
  3. 投票机制,Redis集群节点的数虽必须是2n + 1。
  4. Redis集群中默认分配了 16384个hash槽,在存储数据时,就会将key进行crc 16 的算法,并且对16384取余根据最终的结果,将key-valued放到指定Redis节点 中,而且每一个Redis集群都在维护看相应的hash槽.
  5. 为了保证数据的安全性,每一个集群的节点,至少要跟着一个从节点。(改从节点平时只负责读取所连接节点的数据,在该节点宕机时起作用)
  6. 单独的针对Redis集群中的某一个节点搭建主从。(如果某个节点存放这热点数据,可通过此方式提高读取效率)
  7. 当Redis集群中,超过半数的节点岩机之后,Redis集群就瘫痪了

七、面试常问

7.1、key的生存时间到了,Redis会立即删除吗?

不会立即删除。因为Redis的删除遵循两个删除机制

  • 定期删除:Redis每隔一段时间就去会去查看Redis设置了过期时间的key,会再100ms的间隔中默认查看3个key。
  • 惰性删除:如果当你去查询一个已经过了生存时间的key时,Redis会先查看当前key的生存时间,是否已经到了,直接删除当前 key,并且给用户返回一个空值。

7.2、Redis的淘汰机制

淘汰机制就是在Redis内存已经满的时候,如果添加了一个新的数据,这时候Redis就会根据淘汰机制在内存中删掉某一个数据,以此来为新数据提供存储空间。

淘汰机制有以下8种。

  • volatile-lru:在内存不足时,Redis会再设置过了生存时间的key中干掉一个最近最少使用的key。
  • allkeys-lru:在内存不足时,Redis会再全部的key中干掉一个最近最少使用的key。
  • volatile-lfu:在内存不足时,Redis会再设置过了生存时间的key中干掉一个最近最少频次使用的key。
  • allkeys-lfu:在内存不足时,Redis会再全部的key中干掉一个最近最少频次使用的key。
  • volatile-random:在内存不足时,Redis会再设置过了生存时间的key中随机干掉一个。
  • allkeys-random:在内存不足时,Redis会再全部的key中随机干掉一个。
  • volatile-ttl:在内存不足时,Redis会再设置过了生存时间的key中干掉一个剩余生存时间最少的key。
  • noeviction:(默认)在内存不足时,直接报错。

7.3、缓存常见问题

1、缓存穿透

缓存穿透指的就是:请求缓存中不存在的数据,导致所有的请求都怼到数据库上,从而数据库连接异常。

在这里插入图片描述

问题出现的原因:查询的数据,Redis中没有,数据库中也没有。

解决方案:

  • 1:根据id查询时,如果id是自増的,将id的最大值放到Redis中,在查询数据库之前,直接比较一下id。
  • 2:如果id不是整形,可以将全部的id放到set中,在用户查询之前,去set中查看一下是否有一个id。
  • 3:获取客户端的ip地址,可以将ip的访问添加限制(恶意攻击)。
  • 4:利用互斥锁,缓存失效的时候,先去获得锁,得到锁了,再去请求数据库。没得到锁,则休眠一段时间重试
  • 5:采用异步更新策略,无论key是否取到值,都直接返回。value值中维护一个缓存失效时间,缓存如果过期,异步起一个线程去读数据库,更新缓存。需要做缓存预热(项目启动前,先加载缓存)操作。

2、缓存击穿

所谓缓存击穿是指一个热点数据一直在不停的被大量请求访问,某一个瞬间这个key失效了,于是大量的请求就穿破缓存,直接请求数据库,造成数据库瞬间崩溃。

在这里插入图片描述

问题:缓存中的热点数据,突然到期了,造成了大量的请求都去访问数据库,造成数据库宕机
解决方案

  • 1.在访问缓存中没有的时候,直接添加一个锁,限制请求数量,让几个请求去访问数据库,避免数据库宕机。
  • 2.热点数据的生存时间去掉。

3、缓存雪崩(缓存失效)

缓存雪崩即Redis里同一时间大量缓存数据同时失效,这个时候依然有大量请求来访,结果请求都怼到数据库上,从而导致数据库宕机。

在这里插入图片描述

问题原因:缓存同时到期
解决方案:

  • 1、将缓存中的数据的有效时间在一定范围内随机,例如(30~60分钟)
  • 2、双缓存。设置两个缓存,缓存A和缓存B。缓存A的失效时间为20分钟,缓存B不设失效时间。自己做缓存预热操作。然后细分以下几个小点:
    I 先从缓存A读数据,有则直接返回;
    II A没有数据,直接从B读数据,直接返回,并且异步启动一个更新线程;
    III 更新线程同时更新缓存A和缓存B。

4、缓存倾斜

在一个Redis集群中、某一个节点对应和hash槽的数据都是热点数据,导致大量的请求只访问同一个节点,导致该节点宕机

在这里插入图片描述问题:热点数据放在了一个Redis几点上,导致Redis几点无法承受住大虽的请求,最终Redis宕机

解决方案

  • 1.扩展主从架构,搭建大量的从节点,缓解Redis的压力。
  • 2.可以在Tomcat中做JVM缓存,在查询Redis之前,先去查询Tomcat中的缓存。
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【JVM系列6】生产环境发生OutOfMemoryError就该这么来定位,值得收藏

    jvm参数的认知和监控工具的使用前言JVM参数标准参数-X参数-XX参数Boolean型打印所有JVM参数非Boolean型其他参数常用JVM参数常用命令监控工具jpsjstat查看类装载信息查看垃圾收集信息jstat参数常用选项jstackjstack参数常用选项jinfojmapjhat可视化监控工具JConsole工具VisualV…...

    2024/4/28 9:53:57
  2. 大环境下瑟瑟发抖辞职的第二天,拿了两个 offer

    本来想找 PHP 的,误打误撞发现广州的 Golang 和 PHP 混合用的公司还蛮多,恰好约面试的都是 Golang,挺纳闷的难道 PHP 真的萎靡了?不过有时候写 Go 结构体真的不习惯,这一点 PHP 的高级面向对象特性太香了。面试过程:1. 看你简历里也有用过 Go,Go 和 PHP 在运行的时候有什…...

    2024/4/10 11:20:56
  3. (小白也要学Linux)Linux入门

    初始LinuxLinuxLinux操作系统简介虚拟机虚拟机安装步骤Linux文件系统Linux操作系统结构Linux常用命令目录命令文件命令文件内容命令Vi编辑器用户管理Linux用户/用户组权限管理赋权其他常用命令 操作系统分类企业级应用操作系统和普通个人操作系统有什么区别?常用的企业级应用操…...

    2024/4/10 9:21:31
  4. Android冒险之旅-8-BaseActivity、ActivityCollector的使用

    1.BaseActivity创建一个BaseActivity类继承AppCompatActivity类用来写所有活动公共的方法,方便更好的管理活动。当创建其他活动时直接继承BaseActivity。公共方法就比如活动启动时打印类名,这样在阅读别人代码时不至于找不到对应的活动。 /*** create by 星航指挥官* create …...

    2024/4/28 2:55:49
  5. Spring源码分析(四)SpringMVC

    文章目录ContextLoaderListenerDispatcherServlet初始化九大组件MultipartResolverLocaleResolverThemeResolverHandlerMapping初始化BeanNameUrlHandlerMappingRequestMappingHandlerMapping获取HandlerExecutionChainBeanNameUrlHandlerMappingRequestMappingHandlerMappingH…...

    2024/4/23 5:58:06
  6. Spring源码分析(五)SpringBoot

    文章目录启动过程创建SpringApplication实例运行run方法扩展功能 启动过程SpringBoot的启动是从SpringApplication的静态方法run(…)开始的,实际上在该静态方法中,先创建了一个SpringApplication实例,然后再调用实例的run(…)方法,如果我们需要对SpringApplication实例的属…...

    2024/5/2 16:41:35
  7. mysql常用操作:登陆、添加新用户、分配权限及相关操作命令

    一、登录mysql本地登录mysql账户:mysql -u 【mysql账户名】 -p --可以是root账户名也可以是普通账户,让后输入密码即可登陆登陆远程主机的mysql账户mysql -h [mysql所在的远程主机ip] -P [mysql所在的远程主机设置的mysql服务端口] -u 【mysql账户】 -p 【mysql账户密码】 --…...

    2024/4/27 20:31:53
  8. 实现延时任务的 4 种实现方案!

    一、应用场景在需求开发过程中,我们经常会遇到一些类似下面的场景:a. 外卖订单超过15分钟未支付,自动取消b. 使用抢票软件订到车票后,1小时内未支付,自动取消c. 待处理申请超时1天,通知审核人员经理,超时2天通知审核人员总监d. 客户预定自如房子后,24小时内未支付,房源…...

    2024/5/3 7:58:45
  9. Linux查看python路径

    查看所有python的路径,不止一个 whereis python 查看当前使用的python路径 which python...

    2024/4/18 19:53:49
  10. linux的简单操作命令

    linux常用命令 一.目录命令: linux目录操作命令: pwd:查看当前所在目录 cd:打开目录 ls –a:查看目录下文件 ll:以列的方式显示目录下的文件列表 mkdir:创建文件目录 rm –rf:删除文件或目录 rm ri:删除文件前询问用户 cp:复制文件命令 mv:移动文件或修改文件名 1.增…...

    2024/5/4 8:44:08
  11. LeetCode1392 最长快乐前缀题解

    LeetCode1392 最长快乐前缀 题目 「快乐前缀」是在原字符串中既是 非空 前缀也是后缀(不包括原字符串自身)的字符串。 给你一个字符串 s,请你返回它的 最长快乐前缀。 如果不存在满足题意的前缀,则返回一个空字符串。 举例子:示例 1: 输入:s = “level” 输出:“l”示例…...

    2024/4/30 12:42:12
  12. msxml2类封装

    头文件声明(XmlDocument.h):#pragma once#import "msxml3.dll" #include <msxml2.h> #include <string>#if defined(UNICODE) || defined(_UNICODE)typedef std::wstring tstring; #elsetypedef std::string tstring; #endifclass CXmlNodeList;class…...

    2024/5/1 21:26:52
  13. 第十章 数组翻转

    1.上下反转flipud 结果数组B=flipud(数组A) >> a=rand(4,3)a =0.6787 0.6555 0.27690.7577 0.1712 0.04620.7431 0.7060 0.09710.3922 0.0318 0.8235>> b=flipud(a) %偶数行 b =0.3922 0.0318 0.82350.7431 0.7060 0.09710.75…...

    2024/4/28 22:00:08
  14. vue和jQuery的区别

    文章目录vue介绍jquery介绍vue和jquey对比举例说明 vue介绍 vue是一个刚兴起不久的前端框架,有一套完整的体系,是一个精简的MVVM。从技术角度讲,vue.js专注于MVVM模型的ViewModel层,通过双向数据绑定把view层和Model层连接起来,通过对数据的操作就可以完成对页面视图的渲染…...

    2024/4/15 2:54:58
  15. 四. Zuul 基于数据库实现动态路由

    目录一. 基础解释二. 简单实现创建 Zuul 网关服务 一. 基础解释解释: Zuul 基于数据库实现动态路由的原因,假设当前新建了服务,或已有服务中添加了新的接口,怎么不停机的情况下动态配置该接口通过网关访问,通过数据库进行配置,手动向数据库中存储服务与接口的映射关系,Zuul定时…...

    2024/4/14 0:12:36
  16. Ollydbg简易教学

    Ollydbg介绍Ollydbg(简称OD)是Windows平台下Ring3级的程序调试利器。程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前,用手工或编译程序等方法对程序源代码进行测试,来查找和修正程序中的语法错误和逻辑错误。动态调试则是在可执行程序的…...

    2024/4/15 6:49:16
  17. 头脑发热~~入坑了

    wins10系统,内存8G,开了个虚拟机,装载了ubuntu64位系统,版本是20.04,嘎嘎新!安装pycharm,python3.8,虚拟环境等。简短记录,持续更新!...

    2024/4/28 2:57:28
  18. Opencv Linking CXX shared library ../../lib/libopencv_core.so

    错误信息: [ 31%] Linking CXX shared library …/…/lib/libopencv_core.so CMake Error: cmake_symlink_library: System Error: Operation not supported CMake Error: cmake_symlink_library: System Error: Operation not supported modules/core/CMakeFiles/opencv_core…...

    2024/4/28 8:47:15
  19. SpringBoot + Shiro 一篇文章快速入门

    🏠 本文收录于Github仓库,欢迎前来 star 呀~ https://github.com/Veal98/CS-Wiki 🏃‍ 在线阅读地址/更好的阅读体验请移步:https://veal98.gitee.io/cs-wiki/🛸 SpringBoot + Shiro 一篇文章快速入门1. Shiro 简介Apache Shiro™ is a powerful and easy-to-use Java …...

    2024/5/3 20:54:47
  20. [选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)

    多年不考试,一夜回到解放前T1:花园titlesolutioncodeT2:月亮神树titlesolutioncodeT3:保护出题人titlesolutioncode T1:花园 title 小 L 有一座环形花园,沿花园的顺时针方向,他把各个花圃编号为 1∼n。花圃 1 和 n 是相邻的。 他的环形花园每天都会换一个新花样,但他的…...

    2024/4/26 21:20:22

最新文章

  1. 需求规格说明书编制书(word原件)

    1 范围 1.1 系统概述 1.2 文档概述 1.3 术语及缩略语 2 引用文档 3 需求 3.1 要求的状态和方式 3.2 系统能力需求 3.3 系统外部接口需求 3.3.1 管理接口 3.3.2 业务接口 3.4 系统内部接口需求 3.5 系统内部数据需求 3.6 适应性需求 3.7 安全性需求 3.8 保密性需…...

    2024/5/4 14:14:22
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Docker Desktop+WSL2安装到自定义路径

    现在大多数软件实在太“流氓”了&#xff0c;在安装过程中&#xff0c;根本不让你选择安装路径&#xff0c;默认安装到$HOME下&#xff08;windows C盘&#xff09;&#xff0c;随着软件的使用增多&#xff0c;可能磁盘空间不够&#xff0c;这个时候就想着&#xff0c;看看某些…...

    2024/5/4 9:55:38
  4. linuxday05

    1、makedile原理&#xff08;增量编译生成代码&#xff09; # &#xff08;注释符&#xff09; 目标------依赖 目标不存在//目标比依赖旧才会执行命令&#xff1b; makefile的实现 1、命名要求&#xff08;Makefile/makefile&#xff09; 2、规则的集合 目标文件&#…...

    2024/5/4 6:30:26
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/4 12:05:22
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/4 11:23:32
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/2 23:55:17
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/3 16:00:51
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/4 12:10:13
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/3 21:22:01
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/3 23:17:01
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/2 23:47:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/3 13:26:06
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/3 1:55:15
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/4 2:14:16
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/3 16:23:03
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/4 12:39:12
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/4 13:16:06
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/3 14:57:24
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/4 2:00:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/3 22:03:11
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/4 9:07:39
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/3 1:54:59
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57