文章目录

  • 一、常用五大数据类型及其数据结构
    • 1.Redis键(key)常见命令操作
    • 2.1 Redis字符串(String)
    • 2.2 Redis列表(List)
    • 2.3 Redis集合(Set)
    • 2.4 Redis哈希(Hash)
    • 2.5 Redis有序集合Zset(sorted set)
  • 二、常见面试题总结
    • 2.1 什么是Redis?
    • 2.2 Redis有哪些优缺点?
    • 2.3 为什么要用Redis/为什么要用缓存?
    • 2.4 Redis为什么这么快?
    • 2.5 Redis有哪些数据类型?
    • 2.6 Redis的应用场景?
    • 2.7 Redis的持久化方式?优缺点?
    • 2.8 Redis的过期键的删除策略?
    • 2.9 MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?
    • 2.10 Redis 内存满了怎么办?
    • 2.11 Redis 击穿、穿透、雪崩产生原因以及解决思路?
    • 2.12 Redis事务

一、常用五大数据类型及其数据结构

redis常见数据类型操作命令http://www.redis.cn/commands.html

1.Redis键(key)常见命令操作

keys *查看当前库所有key
在这里插入图片描述
exists key判断某个key是否存在
在这里插入图片描述
type key 查看你的key是什么类型
在这里插入图片描述
del key 删除指定的key数据(后根据keys *查看k1已经不存在)
在这里插入图片描述
unlink key 根据value选择非阻塞删除仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。
在这里插入图片描述
expire key 10 10秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
过期后通过keys *查看库为空
在这里插入图片描述
dbsize查看当前数据库的key的数量
在这里插入图片描述
flushdb清空当前库
在这里插入图片描述
select命令切换数据库
flushall通杀全部库
在这里插入图片描述

2.1 Redis字符串(String)

String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M

2.1.1 常用命令
set key value 添加键值对(再次set相同key则 value就将被覆盖)
在这里插入图片描述
*NX:当数据库中key不存在时,可以将key-value添加数据库
*XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
*EX:key的超时秒数
*PX:key的超时毫秒数,与EX互斥
get key查询对应键值
append key value将给定的value追加到原值的末尾
strlen key 获得值的长度
setnx key value只有在 key 不存在时设置key的值
(integer) 0表示设置不成功
在这里插入图片描述
incr key 将 key 中储存的数字值增1只能对数字值操作,如果为空,新增值为1
在这里插入图片描述

decr key 将 key 中储存的数字值减1只能对数字值操作,如果为空,新增值为-1
在这里插入图片描述
incrby / decrby key 步长将 key 中储存的数字值增减。自定义步长。
在这里插入图片描述
getrange key 起始位置 结束位置 获得值的范围,类似java中的substring,前包,后包
在这里插入图片描述
setrange key 起始位置 value用 value覆写key所储存的字符串值,从 起始位置 开始(索引从0开始)。
在这里插入图片描述
setex key 过期时间value设置键值的同时,设置过期时间,单位秒。
在这里插入图片描述
getset key value以新换旧,设置了新值同时获得旧值。
在这里插入图片描述
String的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配.
在这里插入图片描述
如图中所示,内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M。
应用场景:计数的场景,用户的访问次数、热点文章的点赞转发数量

2.2 Redis列表(List)

2.2.1 简介
单键多值
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。
在这里插入图片描述
2.2.2 常用命令
lpush/rpush key value1 value2 value3 从左边/右边插入一个或多个值。
在这里插入图片描述
lpop/rpop key从左边/右边吐出一个值。值在键在,值光键亡。
在这里插入图片描述
rpoplpush key1 key2从 key1列表右边吐出一个值,插到 key2列表左边。
lrange key start stop
按照索引下标获得元素(从左到右)
lrange k1 0 -1 0左边第一个,-1右边第一个,(0-1表示获取所有)
lindex key index按照索引下标获得元素(从左到右)
llen key获得列表长度
linsert key before value newvalue在value的后面插入newvalue插入值
lrem key n value从左边删除n个value(从左到右)
lset key index value将列表key下标为index的值替换成value

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> lpush k1 v1 v2 v3
(integer) 3
127.0.0.1:6379> rpush k2 v11 v12 v13
(integer) 3
127.0.0.1:6379> rpoplpush k1 k2
"v1"
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "v11"
3) "v12"
4) "v13"
127.0.0.1:6379> lindex k2 2
"v12"
127.0.0.1:6379> llen k2
(integer) 4
127.0.0.1:6379> linsert k2 before "v11" "newv11"
(integer) 5
127.0.0.1:6379> lrange k2 0 -1 
1) "v1"
2) "newv11"
3) "v11"
4) "v12"
5) "v13"
127.0.0.1:6379> linsert k2 before "v12" "newv12"
(integer) 6
127.0.0.1:6379> linsert k2 before "v13" "newv13"
(integer) 7
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "newv11"
3) "v11"
4) "newv12"
5) "v12"
6) "newv13"
7) "v13"
127.0.0.1:6379> lrem k2 1 "newv11"
(integer) 1
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "v11"
3) "newv12"
4) "v12"
5) "newv13"
6) "v13"
127.0.0.1:6379> lset k2 1 athuigu
OK
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "athuigu"
3) "newv12"
4) "v12"
5) "newv13"
6) "v13"
127.0.0.1:6379> 

2.2.3 数据结构
List的数据结构为快速链表quickList。首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是ziplist,也即是压缩列表。它将所有的元素紧挨着一起存储,分配的是一块连续的内存。当数据量比较多的时候才会改成quicklist。因为普通的链表需要的附加指针空间太大,会比较浪费空间。比如这个列表里存的只是int类型的数据,结构上还需要两个额外的指针prev和next。
在这里插入图片描述

Redis将链表和ziplist结合起来组成了quicklist。也就是将多个ziplist使用双向指针串起来使用。这样既满足了快速的插入删除性能,又不会出现太大的空间冗余
应用场景:发布与订阅或者说消息队列、慢查询。

2.3 Redis集合(Set)

2.3.1 简介
Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。
Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。一个算法,随着数据的增加,执行时间的长短,如果是O(1),数据增加,查找数据的时间不变

2.3.2 常用命令

sadd key value1 value2 将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略
smembers key取出该集合的所有值。
sismember key value判断集合 key是否为含有该value值,有1,没有0
scard key返回该集合的元素个数。
srem key value1 value2 删除集合中的某个元素。
spop key 随机从该集合中吐出一个值。
srandmember key n随机从该集合中取出n个值。不会从集合中删除 。
smove source destination value把集合中一个值从一个集合移动到另一个集合
sinter key1 key2返回两个集合的交集元素。
sunion key1 key2返回两个集合的并集元素。
sdiff key1 key2返回两个集合的差集元素(key1中的,不包含key2中的)

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd k1 v1 v2 v3
(integer) 3
127.0.0.1:6379> smembers k1
1) "v3"
2) "v2"
3) "v1"
127.0.0.1:6379> sismember k1 v1
(integer) 1
127.0.0.1:6379> sismember k1 v4
(integer) 0
127.0.0.1:6379> srem k1 v1 v2
(integer) 2
127.0.0.1:6379> smembers k1
1) "v3"
127.0.0.1:6379> sadd k2 v1 v2 v3 v4
(integer) 4
127.0.0.1:6379> spop k2
"v2"
127.0.0.1:6379> spop k2
"v4"
127.0.0.1:6379> srandmember k2 2
1) "v3"
2) "v1"
127.0.0.1:6379> smembers k1
1) "v33"
2) "v11"
3) "v22"
127.0.0.1:6379> smembers k2
1) "v3"
2) "v2"
3) "v4"
4) "v1"
127.0.0.1:6379> smove k1 k2 v11
(integer) 1
127.0.0.1:6379> smembers k2
1) "v3"
2) "v2"
3) "v4"
4) "v1"
5) "v11"
127.0.0.1:6379> sadd k1 v1
(integer) 1
127.0.0.1:6379> smembers k1
1) "v33"
2) "v22"
3) "v1"
127.0.0.1:6379> sinter k1 k2
1) "v1"
127.0.0.1:6379> sunion k1 k2
1) "v33"
2) "v2"
3) "v11"
4) "v3"
5) "v22"
6) "v4"
7) "v1"
127.0.0.1:6379> sdiff k1 k2
1) "v22"
2) "v33"

3.3.3 数据结构
Set数据结构是dict字典,字典是用哈希表实现的。Java中HashSet的内部实现使用的是HashMap,只不过所有的value都指向同一个对象。Redis的set结构也是一样,它的内部也使用hash结构,所有的value都指向同一个内部值。
使用场景:数据不重复+可以判断一个成员是否存在+交集并集(共同关注、粉丝,两个集合求交集)

2.4 Redis哈希(Hash)

2.4.1 简介
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似Java里面的Map<String,Object>用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储主要有以下2种存储方式:
在这里插入图片描述
通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据了,既不需要重复存储数据,也不会带来序列化和并发修改控制的问题

2.4.2 常用命令
hset key field value给key集合中的field键赋值value
hget key1 field从key1集合field取出 value
hmset key1 field value1 field value2 批量设置hash的值
hexists key1 field查看哈希表 key 中,给定域 field 是否存在。
hkeys key1列出该hash集合的所有field
hvals key1列出该hash集合的所有value
hincrby key1 field increment为哈希表 key 中的域 field 的值加上增量 1 -1
hsetnx key1 field value将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在

127.0.0.1:6379> hset user:1001 id 1
(integer) 1
127.0.0.1:6379> hset user:1001 name zhangsan
(integer) 1
127.0.0.1:6379> hget user:1001 id
"1"
127.0.0.1:6379> hget user:1001 name
"zhangsan"
127.0.0.1:6379> hmset user:1002 id 2 name lisha age 22
OK
127.0.0.1:6379> hexists user:1002 id
(integer) 1
127.0.0.1:6379> hexists user:1002 name 
(integer) 1
127.0.0.1:6379> hexists user:1002 gender
(integer) 0
127.0.0.1:6379> hkeys user:1002
1) "id"
2) "name"
3) "age"
127.0.0.1:6379> hvals user:1002
1) "2"
2) "lisha"
3) "22"
127.0.0.1:6379> hincrby user:1002 age 2
(integer) 24
127.0.0.1:6379> hsetnx user:1002 age 23
(integer) 0
127.0.0.1:6379> hsetnx user:1002 gender 1
(integer) 1
127.0.0.1:6379> 

2.4.3 数据结构
Hash类型对应的数据结构是两种:ziplist(压缩列表),hashtable(哈希表)。当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable。

2.5 Redis有序集合Zset(sorted set)

2.5.1 简介
Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。
不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了。因为元素是有序的, 所以你也可以很快的根据评分(score)或者次(position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表
2.5.2 常见命令
1.zadd key score1 value1 score2 value2 …将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
2.zrange key start stop [WITHSCORES]返回有序集 key 中,下标在 start stop之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。
3.zrangebyscore key minmax [withscores] [limit offset count]中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
4.zrevrangebyscore key maxmin [withscores] [limit offset count] 同上,改为从大到小排列。
5.zincrby key increment value 为元素的score加上增量
6.zrem key value 删除该集合下,指定值的元素
7.zcount key min max统计该集合,分数区间内的元素个数
8.zrank key value 返回该值在集合中的排名,从0开始,所以mysql为第三名
9.案例:如何利用zset实现一个文章访问量的排行榜?

127.0.0.1:6379> zadd topn 200 java 300 C++ 400 mysql 500 PHP
(integer) 4
127.0.0.1:6379> zrange topn 0 -1 withscores
1) "java"
2) "200"
3) "C++"
4) "300"
5) "mysql"
6) "400"
7) "PHP"
8) "500"
127.0.0.1:6379> zrangebyscore topn 300 500 withscores
1) "C++"
2) "300"
3) "mysql"
4) "400"
5) "PHP"
6) "500"
127.0.0.1:6379> zrevrangebyscore topn 500 200 withscores
1) "PHP"
2) "500"
3) "mysql"
4) "400"
5) "C++"
6) "300"
7) "java"
8) "200"
127.0.0.1:6379> zincrby topn 50 java
"250"
127.0.0.1:6379> zrem topn PHP
(integer) 1
127.0.0.1:6379> zrevrangebyscore topn 500 200 withscores
1) "mysql"
2) "400"
3) "C++"
4) "300"
5) "java"
6) "250"
127.0.0.1:6379> zrank topn java
(integer) 0
127.0.0.1:6379> zcount topn 200 400
(integer) 3
127.0.0.1:6379> zadd top 1000 v1 2000 v2 3000 v3
(integer) 3
127.0.0.1:6379> zrevrange top 0 9withscores
(error) ERR value is not an integer or out of range
127.0.0.1:6379> zrevrange top 0 9 withscores
1) "v3"
2) "3000"
3) "v2"
4) "2000"
5) "v1"
6) "1000"
127.0.0.1:6379> 

2.5.3 数据结构
SortedSet(zset)是Redis提供的一个非常特别的数据结构,一方面它等价于Java的数据结构Map<String, Double>,可以给每一个元素value赋予一个权重score,另一方面它又类似于TreeSet,内部的元素会按照权重score进行排序,可以得到每个元素的名次,还可以通过score的范围来获取元素的列表。
zset底层使用了两个数据结构
(1)hash,hash的作用就是关联元素value和权重score,保障元素value的唯一性,可以通过元素value找到相应的score值。
(2)跳跃表,跳跃表的目的在于给元素value排序,根据score的范围获取元素列表。

跳跃表(跳表)
1、简介
有序集合在生活中比较常见,例如根据成绩对学生排名,根据得分对玩家排名等。对于有序集合的底层实现,可以用数组、平衡树、链表等。数组不便元素的插入、删除;平衡树或红黑树虽然效率高但结构复杂;链表查询需要遍历所有效率低。Redis采用的是跳跃表。跳跃表效率堪比红黑树,实现远比红黑树简单。
2、实例
对比有序链表和跳跃表,从链表中查询出51
(1)有序链表
在这里插入图片描述
要查找值为51的元素,需要从第一个元素开始依次查找、比较才能找到。共需要6次比较。
(2)跳跃表
在这里插入图片描述
从第2层开始,1节点比51节点小,向后比较。
21节点比51节点小,继续向后比较,后面就是NULL了,所以从21节点向下到第1层
在第1层,41节点比51节点小,继续向后,61节点比51节点大,所以从41向下
在第0层,51节点为要查找的节点,节点被找到,共查找4次。
从此可以看出跳跃表比有序链表效率要高

二、常见面试题总结

2.1 什么是Redis?

Redis 是一个使用 C 语言写成的,开源的高性能key-value非关系缓存数据库。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。Redis的数据都基于缓存的,所以很快,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis也可以实现数据写入磁盘中,保证了数据的安全不丢失(持久化),而且Redis的操作是原子性的。

2.2 Redis有哪些优缺点?

优点:
1.读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。
2.支持数据持久化,支持AOF和RDB两种持久化方式。
3.支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
4.数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构(redis 6出现新的数据类型Bitmaps HyperLogLog Geospatial)。
5.支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
缺点:
1.数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
2.Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
3.主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。
4.Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。

2.3 为什么要用Redis/为什么要用缓存?

主要从“高性能”和“高并发”这两点来看待这个问题。
高性能:
假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在数缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直接操作内存,所以速度相当快。如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可!
高并发:
直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。

2.4 Redis为什么这么快?

1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是O(1);
2.数据结构简单,对数据操作也简单,Redis 中的数据结构是专门进行设计的;
3.采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;
4.使用多路 I/O 复用模型,非阻塞 IO效率高;

2.5 Redis有哪些数据类型?

Redis主要有5种数据类型,包括String,List,Set,Zset,Hash满足大部分的使用要求。(redis 6出现新的数据类型Bitmaps HyperLogLog Geospatial)。

2.6 Redis的应用场景?

1.计数器。可以对 String 进行自增自减运算,从而实现计数器功能。Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量。
2.缓存。将热点数据放到内存中,设置内存的最大使用量以及淘汰策略来保证缓存的命中率。
3.会话缓存。可以使用 Redis 来统一存储多台应用服务器的会话信息。当应用服务器不再存储用户的会话信息,也就不再具有状态,一个用户可以请求任意一个应用服务器,从而更容易实现高可用性以及可伸缩性。
4.分布式锁实现。在分布式场景下,无法使用单机环境下的锁来对多个节点上的进程进行同步。可以使用 Redis 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。
5.消息队列(发布/订阅功能)。List 是一个双向链表,可以通过 lpush 和 rpop 写入和读取消息。不过最好使用 Kafka、RabbitMQ 等消息中间件。
6.查找表。例如 DNS 记录就很适合使用 Redis 进行存储。查找表和缓存类似,也是利用了 Redis 快速的查找特性。但是查找表的内容不能失效,而缓存的内容可以失效,因为缓存不作为可靠的数据来源。

2.7 Redis的持久化方式?优缺点?

什么是Redis持久化?
持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。
Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制
RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期。
在这里插入图片描述
优点:
1.只有一个文件 dump.rdb,方便持久化。
2.容灾性好,一个文件可以保存到安全的磁盘。
3.性能最大化,fork 子进程来完成写操作,让主进程继续处理命令,所以是 IO 最大化。4.使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis 的高性能。相对于数据集大时,比 AOF 的启动效率更高。

缺点:
1.数据安全性低。RDB 是间隔一段时间进行持久化,如果持久化之间 redis 发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候)
2.AOF(Append-only file)持久化方式:是指所有的命令行记录以 redis 命令请 求协议的格式完全持久化存储)保存为 aof 文件。
3.AOF:持久化。AOF持久化(即Append Only File持久化),则是将Redis执行的每次写命令记录到单独的日志文件中,当重启Redis会重新将持久化的日志中文件恢复数据。当两种方式同时开启时,数据恢复Redis会优先选择AOF恢复。
在这里插入图片描述
优点:
1.数据安全,aof 持久化可以配置 appendfsync 属性,有 always,每进行一次 命令操作就记录到 aof 文件中一次。
2.通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof 工具解决数据一致性问题。
3.AOF 机制的 rewrite 模式。AOF 文件没被 rewrite 之前(文件过大时会对命令 进行合并重写),可以删除其中的某些命令(比如误操作的 flushall))。

缺点:
1.AOF 文件比 RDB 文件大,且恢复速度慢。
2.数据集大的时候,比 rdb 启动效率低。
俩种持久化的优缺点是什么?
AOF文件比RDB更新频率高,优先使用AOF还原数据。
AOF比RDB更安全也更大。
RDB性能比AOF好。
如果两个都配了优先加载AOF。

2.8 Redis的过期键的删除策略?

我们都知道,Redis是基于内存的key-value数据库,我们可以设置Redis中缓存的key的过期时间。Redis的过期策略就是指当Redis中缓存的key过期了,Redis如何处理。
过期策略通常有以下三种:
定时过期: 每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。
惰性过期: 只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。
定期过期: 每隔一定的时间,会扫描 expires 字典中一定数量的key,并清除其中已过期的key。该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。(expires字典会保存所有设置了过期时间的key的过期时间数据,其中,key是指向键空间中的某个键的指针,value是该键的毫秒精度的UNIX时间戳表示的过期时间。键空间是指该Redis集群中保存的所有键。)
Redis中同时使用了惰性过期和定期过期两种过期策略。

2.9 MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?

Redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

2.10 Redis 内存满了怎么办?

我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。
1、通过配置文件配置 通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小

//设置Redis最大占用内存大小为100M
maxmemory 100mb

redis的配置文件不一定使用的是安装目录下面的redis.conf文件,启动redis服务的时候是可以传一个参数指定redis的配置文件的

2、通过命令修改 Redis支持运行时通过命令动态修改内存大小

//设置Redis最大占用内存大小为100M
127.0.0.1:6379> config set maxmemory 100mb
//获取设置的Redis能使用的最大内存大小
127.0.0.1:6379> config get maxmemory

如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存

3.Redis的内存淘汰
既然可以设置Redis最大占用内存大小,那么配置的内存就有用完的时候。那在内存用完的时候,还继续往Redis里面添加数据不就没内存可用了吗?实际上Redis定义了几种策略用来处理这种情况:
在这里插入图片描述
当使用volatile-lru、volatile-random、volatile-ttl这三种策略时,如果没有key可以被淘汰,则和noeviction一样返回错误
如何获取及设置内存淘汰策略?
获取当前内存淘汰策略:

127.0.0.1:6379> config get maxmemory-policy

通过配置文件设置淘汰策略(修改redis.conf文件):

maxmemory-policy allkeys-lru

通过命令修改淘汰策略:

127.0.0.1:6379> config set maxmemory-policy allkeys-lru

LRU算法?什么是LRU?
上面说到了Redis可使用最大内存使用完了,是可以使用LRU算法进行内存淘汰的,那么什么是LRU算法呢?
LRU(Least Recently Used),即最近最少使用,是一种缓存置换算法。在使用内存作为缓存的时候,缓存的大小一般是固定的。当缓存被占满,这个时候继续往缓存里面添加数据,就需要淘汰一部分老的数据,释放内存空间用来存储新的数据。
这个时候就可以使用LRU算法了。其核心思想是:如果一个数据在最近一段时间没有被用到,那么将来被使用到的可能性也很小,所以就可以被淘汰掉。

2.11 Redis 击穿、穿透、雪崩产生原因以及解决思路?

1.缓存击穿
大家都知道,计算机的瓶颈之一就是 IO,为了解决内存与磁盘速度不匹配的问题,产生了缓存,将一些热点数据放在内存中,随用随取,降低连接到数据库的请求链接,避免数据库挂掉。需要注意的是,无论是击穿还是后面谈到的穿透与雪崩,都是在高并发前提下,当缓存中某一个热点 key 失效,
在这里插入图片描述
2.为什么会有击穿发生呢?
有两个主要原因:
1、Key 过期
2、Key 被页面置换淘汰
对于第一个原因是因为在 Redis 中,Key 有过期时间,如果某一个时刻(假如商城做活动,零点开始)key 失效,那么零点之后对某一个商品查询请求将全都压到数据库上,导致数据库崩。
对于第二个原因,因为内存是有限的,要时时刻刻缓存新的数据,淘汰旧的数据,所以在一定的页面置换策略(常见页面置换算法图解)中,淘汰数据,如果某些商品做活动之前无人问津,势必会被淘汰。

3.应对击穿的处理思路
在这里插入图片描述
由于 key 过期在所难免,高流量来到 Redis 时,根据 Redis 的单线程特性,可以认为任务是在队列里依次执行的,当请求到达 Redis 发现 Key 过期时,进行一个操作:设置锁。
在这里插入图片描述
但是引出了一个新的问题,如果拿到锁去拿数据的请求然后挂了怎么办?也就是锁没有释放,其他进程都在等锁,解决办法是:
对锁设置一个过期时间,如果到达了过期时间还没释放就自动释放,问题又来了,锁挂了好说,但是如果是锁超时呢?也就是在设定的时间里数据没有取出来,但是锁由过期了,常见的思路是,锁过期时间值递增,但是想想不靠谱,因为第一个请求可能超时,如果后面的也超时呢,接连多次超时之后,锁过期时间值势必特别大了,这样做弊端太多。

另外一个思路是,再开启一个线程,进行监控,如果取数据的线程没有挂的话,就适当延迟锁的过期时间。

在这里插入图片描述
4.穿透
穿透主要原因是很多请求都在访问数据库不存在的数据,例如一个卖书的商城一直被请求查询茶叶产品,由于 Redis 缓存主要是用来缓存热点数据,对于数据库都不存在的数据,是没法缓存的,这种异常流量就会直接到达数据库并且返回"没有"的查询结果。
应对这种请求,处理办法是对访问请求加一层过滤器,例如布隆过滤器、增强版布隆过滤器、布谷鸟过滤器,详情见:Redis 布隆过滤器与布谷鸟过滤器
在这里插入图片描述
除了布隆过滤器,可以增加一些参数检验,例如数据库数据 id 一般都是递增的,如果请求 id = -10 这种参数,势必绕过 Redis,避免这种情况,可以对用户真实性检验等操作。

5.雪崩
雪崩,和击穿类似,不同的是击穿是一个热点 Key 某时刻失效,而雪崩是大量的热点 Key 在一瞬间失效,网络上很多博客都在强调解决雪崩的策略是随机过期时间,这个非常不准确,举个例子,银行做活动,之前这个利息系数为 2%,过了零点系数改为 3%,这种情况能将用户的对应的 key 改为随机过期吗?如果用的过去的数据叫脏数据。明显不可以,同样存钱,你存到年底利息 300 万,隔壁才 200 万,这不得打架啊,开玩笑~正确的思路是,首先要看看这个 Key 过期是不是时点性有关,时点性无关的话,可以随机过期时间解决。如果是时点性有关,例如刚刚说的银行某一天改变某系数,那么就要利用强依赖击穿方案,策略是先过去的线程更新一下所有 key
在这里插入图片描述
在后台更新热点 key 的同时,业务层将进来的请求延时一下,例如短暂的睡几毫秒或者秒,给后面的更新热点 key 分散压力。

2.12 Redis事务

2.12.1 什么是事务?
1.事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断
2.事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
2.12.2 Redis事务的概念
1.Redis 事务的本质是通过MULTI、EXEC、WATCH等一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。
2.redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。
2.12.3 Redis事务的三个阶段
Multi、Exec、discard
从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。
组队的过程中可以通过discard来放弃组队。
在这里插入图片描述
multi:开启事务 后组队操作在执行exec
在这里插入图片描述
组队的过程中可以通过discard来放弃组队如下操作:
在这里插入图片描述
事务的错误处理组队中某个命令出现了报告错误,执行时整个的所有队列都会被取消
在这里插入图片描述
如果执行阶段某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚。
在这里插入图片描述

1.组队阶段报错,提交失败。都不提交
在这里插入图片描述
2.组队阶段成功,提交时失败。哪个错哪个就不显示ok 就不成功
在这里插入图片描述

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

相关文章

  1. deepin中安装teams

    官网下载teams安装包deb 下载页面 下载地址 安装 sudo dpkg -i teams_1.4.00.26453_amd64.deb...

    2024/5/1 5:24:28
  2. 美赛python学习d7--机器学习一:数据预处理

    机器学习的概述 监督学习 已知的样本都有其标签。对于数据集中的每个样本&#xff0c;我们用算法预测出“正确答案” 回归问题&#xff1a;预测一个连续值输出 分类问题&#xff1a;预测一个离散值输出 无监督学习 数据没有标签&#xff0c;根据数据的特征将其分类&#xf…...

    2024/5/1 13:04:32
  3. Qt+OpenCV联合开发(三)--图像色彩空间转换

    一、色彩空间基本知识 1、常见的色彩空间有RGB、Gray、HSV、HIS、YCrCb、YUV&#xff0c;其中最常用的是RGB、Gray、HSV、YUV&#xff08;YUV就是YCrCb&#xff09; RGB就是指Red,Green和Blue,一副图像由这三个通道(channel)构成Gray就是只有灰度值一个通道。HSV即Hue(色调),…...

    2024/5/1 6:37:29
  4. 1155: 字符串比较 多实例(zzuli)

    题目描述比较字符串大小&#xff0c;但比较的规则不同字典序规则。字符比较新规则如下&#xff1a;A < a < B < b < ………… < Z < z。 输入输入数据包含多个测试实例&#xff0c;每个测试实例占两行&#xff0c;每一行有一个字符串&#xff08;只包含大小写…...

    2024/5/1 10:32:58
  5. 三、linux框架

    三、linux框架 本章节讲解linux框架&#xff0c;了解用户类型&#xff0c;终端介绍&#xff0c;交互式接口&#xff0c;还有有意思的命令提示符。在一些上课练习题或者面试题有意考这个。 运维基本功专栏地址&#xff1a;https://blog.csdn.net/qq_41765918/category_11608412.…...

    2024/5/1 15:29:52
  6. SVM原理-采用间隔最大化-通过什么办法解决非线性分类问题-为什么转换为对偶问题求解-缺失数据敏感性

    1、请简述 SVM 原理 2、SVM 为什么采用间隔最大化? 3、支持向量机&#xff08;SVM&#xff09;可以通过什么办法解决非线性分类问题&#xff1f; 4、为什么要将求解 SVM 的原始问题转换为其对偶问题&#xff1f; 5、为什么SVM对缺失数据敏感 1、请简述 SVM 原理 请简述 …...

    2024/5/1 14:54:45
  7. 洛谷P1008 [NOIP1998 普及组] 三连击 题解

    题目背景 本题为提交答案题&#xff0c;您可以写程序或手算在本机上算出答案后&#xff0c;直接提交答案文本&#xff0c;也可提交答案生成程序。 题目描述 将 1, 2, \ldots , 91,2,…,9 共 99 个数分成 33 组&#xff0c;分别组成 33 个三位数&#xff0c;且使这 33 个三位…...

    2024/5/1 17:34:16
  8. 风尚云网学js-关于js对象数组如何去重?

    请问对象数组如何去重&#xff1f; 每个对象的内存地址本身就不一样&#xff0c;去重的意义何在&#xff0c;非要去重的话&#xff0c;那只能通过JSON.stringify序列化成字符串(这个方法有一定的缺陷)后进行对比&#xff0c;或者递归的方式进行键-值对比&#xff0c;但是对于大…...

    2024/5/1 6:38:39
  9. 洛谷P2754:[CTSC1999]家园 / 星际转移问题(网络流)

    解析 容易想到对每个时间的空间站都建一个点。 然后发现循环问题很难搞。 然后我就一直想从 lcm 下文章&#xff0c;结果 lcm 可以到3e5&#xff0c;于是就寄了… qwq 注意到本题的数据范围极小&#xff01; 那个3e5云云是不可能跑出来的&#xff0c;事实上&#xff0c;答案不…...

    2024/5/1 13:09:13
  10. 【每日力扣32】合并两个有序数组

    一、题目[LeetCode-88] 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终…...

    2024/5/1 9:11:55
  11. 习题8-2 在数组中查找指定元素

    习题8-2 在数组中查找指定元素 (15 分) 本题要求实现一个在数组中查找指定元素的简单函数。 函数接口定义&#xff1a; int search( int list[], int n, int x );其中list[]是用户传入的数组&#xff1b;n&#xff08;≥0&#xff09;是list[]中元素的个数&#xff1b;x是待…...

    2024/5/1 7:34:16
  12. 3.1分治法介绍及关键点解析

    蓝桥云课《算法很美》 第三章 3.1分治法介绍及关键点解析...

    2024/4/15 13:43:51
  13. 剑指offer59 滑动窗口的最大值

    遍历数组时的规律&#xff1a; 因此&#xff0c;队列始终是一个降序队列&#xff0c;队首一定是当前窗口最大值。 每一次窗口向前滑动&#xff0c;是右边界向右移&#xff0c;左边界向右移。右边界是对比数组中下一个数的大小来实现&#xff0c;左边界需要将当前坐标-窗口长…...

    2024/5/1 12:05:48
  14. 6.6 实现 strStr() (KMP算法)

    28 实现 strStr题目实现 strStr() 函数。给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串出现的第一个位置&#xff08;下标从 0 开始&#xff09;。如果不存在&#xff0c;则返回 -1 。思路具体代码实现(C)模型&#xff08;知识点…...

    2024/5/1 10:42:40
  15. 九日集训第一天

    ...

    2024/5/1 13:31:36
  16. 【Linux】Linux下运行你的第一个Python程序(Hello World)

    Linux系统下&#xff0c;用Python打开你的“Hello World”。 目录 前言 方法1 方法2 方法3 前言 一般来说&#xff0c;Python 已预先安装在大多数Linux 发行版和 macOS 上。我们在编写 Python 脚本时&#xff0c;需要确定脚本是否支持用户计算机上安装的 Python 版本。所以…...

    2024/4/14 4:02:57
  17. 05Jupyter notebook 出现Bad file descriptor错误

    问题&#xff1a; 打开jupyter notebook&#xff0c;然后打开ipynb文件&#xff0c;出现Bad file descriptor错误&#xff0c;并无法运行代码。 解决方法&#xff1a; 1、 打开anaconda Powershell prompt&#xff0c;并以管理员身份运行 2、输入 pip unstall pyzmq 以卸载 …...

    2024/4/14 4:03:12
  18. JZ31 栈的压入、弹出序列

    问题描述 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序&#xff0c;序列4,5,3,2,1是该压栈序列对应的一个弹出序列&#xff0c;但4,3,5,…...

    2024/4/19 18:44:47
  19. kafka系列之:删除kafka topic报Topic is marked for dele,需要手动删除kafka topic对应的目录数据

    kafka系列之&#xff1a;删除kafka topic报Topic is marked for dele&#xff0c;需要手动删除kafka topic对应的目录数据 一、删除kafka topic /data/service/kafka/bin/kafka-topics.sh --delete --topic history-debezium-optics_1h --zookeeper hadoop-common-zk-001:218…...

    2024/4/19 9:12:04
  20. PAT 1027 打印沙漏 (20 分)

    本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”&#xff0c;要求按下列格式打印 所谓“沙漏形状”&#xff0c;是指每行输出奇数个符号&#xff1b;各行符号中心对齐&#xff1b;相邻两行符号数差2&#xff1b;符号数先从大到小顺序递减到1&#xff0c;…...

    2024/4/14 4:03:12

最新文章

  1. 《MySQL是怎样运行的》读书笔记(二) 从一条记录说起-InnoDB记录结构

    前言 到现在为止&#xff0c; MySQL 还是一个黑盒&#xff0c;只知道使用客户端发送请求并等待服务器返回结果 那么表中的数据到底存到了哪里?以什么格式存放的? MySQL 是以什么方式来访问的这些数据? 相应的知识储备我只知道MySQL 服务器上负责对表中数据的读取和写入工…...

    2024/5/1 18:07:32
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. Python读取文件里内容

    如果要读取一个文件里的内容是 # 文件名&#xff1a;db.txt 1 2 3 4代码如下 import requests f open("db.txt", mode"rb") content f.read() f.close()data content.decode(utf-8)# 存到 list 里 data_list data.split(\r\n) print(data_list)# 结果…...

    2024/5/1 9:42:44
  4. 与机器对话:ChatGPT 和 AI 语言模型的奇妙故事

    原文&#xff1a;Talking to Machines: The Fascinating Story of ChatGPT and AI Language Models 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 从 ELIZA 到 ChatGPT&#xff1a;会话式人工智能的简史 会话式人工智能是人工智能&#xff08;AI&#xff09;的一个分…...

    2024/5/1 5:11:02
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  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