Redis列表(List)

  • Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  • 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。
  • 有序,元素可以重复
  • lpush/rpush  <key>  <value1>  <value2>  <value3> ....     从左边/右边插入一个或多个值。
  • lpop/rpop  <key>              从左边/右边吐出一个值。值在键在,值光键亡
  • rpoplpush  <key1>  <key2>    从<key1>列表右边吐出一个值,插到<key2>列表左边。
  • lrange <key> <start> <stop>
    1. lrange mylist 0 -1              从0开始,-1表示获取所有
    2. 按照索引下标获得元素(从左到右)
  • lindex <key> <index>          按照索引下标获得元素(从左到右)
  • llen <key>                    获得列表长度
  • linsert <key>  before/after <value>  <newvalue>      在<value>的前面/后面插入<newvalue>
  • lrem <key> <n>  <value>                     从左边删除n个value(从左到右)

Redis集合(Set)

  • 自动去重,无序,底层是value值为null的hash 表, 应用场景: 秒杀成功的用户列表
  • 添加,删除,查找的复杂度都是O(1)
  • 一个算法,随着数据的增加,执行时间的长短,如果是O(1),数据增加,查找数据的时间不变
  • sadd <key>  <value1>  <value2> .....
    1. 将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略 
  • smembers <key>                  取出该集合的所有值。
  • sismember <key>  <value>         判断集合<key>是否为含有该<value>值,有1,没有0
  • scard <key>                      返回该集合的元素个数。
  • srem <key> <value1> <value2> ....    删除集合中的某个元素。
  • spop <key>                       随机从该集合中吐出一个值。(吐完以后集合中没有该元素)
  • srandmember <key> <n>            随机从该集合中取出n个值。不会从集合中删除 
  • sinter <key1> <key2>              返回两个集合的交集元素。
  • sunion <key1> <key2>             返回两个集合的并集元素。
  • sdiff <key1> <key2>               返回两个集合的差集元素(key1中的,不包含key2中的)

Redis哈希(Hash)

  • Redis hash 是一个键值对集合。
  • Redis hash是一个string类型的fieldvalue的映射表,hash特别适合用于存储对象。
  • 类似Java里面的Map<String,Object>
  • 主要有以下2种存储方式: 
    1.    每次修改用户的某个属性需要,先反序列化改好后再序列化回去。开销较大。
    2. 通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据了,既不需要重复存储数据,也不会带来序列化和并发修改控制的问题
  • hset <key>  <field>  <value>       给<key>集合中的  <field>键赋值<value>
  • hget <key1>  <field>              从<key1>集合<field> 取出 value
  • hmget <key>  <field1> <field2> ...    获取hash结构的多个属性的属性值
  • hmset <key1>  <field1> <value1> <field2> <value2>...     批量设置hash的值
  • hexists <key1>  <field>             查看哈希表 key 中,给定域 field 是否存在。 存在1,不存在0
  • hkeys <key>                       列出该hash集合的所有field
  • hvals <key>                       列出该hash集合的所有value
  • hincrby <key> <field>  <increment>   为哈希表 key 中的域 field 的值加上增量 1   -1   increment表示增量多少,可为负数
  • hsetnx <key>  <field> <value>       将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .
  • java代码操作redis时,一般使用 string存储java对象,gson、fastjson 可以将java对象转为json字符串存入到redis中,获取时再还原为java对象

    Redis有序集合Zset(sorted set)

  • 与普通集合set非常相似,是一个没有重复元素的字符串集合。

  • 不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了
  • 因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
  • 访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。
  • zadd  <key> <score1> <value1>  <score2> <value2>…
    1. 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
  • zrange <key>  <start> <stop>  [WITHSCORES]  
    1. 返回有序集 key 中,下标在<start> <stop>之间的元素
    2. 带WITHSCORES,可以让分数一起和值返回到结果集。
  • zrangebyscore key min max [withscores] [limit offset count]
    1. 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
  • zrevrangebyscore key max min [withscores] [limit offset count]              
    1. 同上,改为从大到小排列。
  • zincrby <key> <increment> <value>      为元素的score加上增量
  • zrem  <key>  <value>                删除该集合下,指定值的元素
  • zcount <key>  <min>  <max>          统计该集合,分数区间内的元素个数
  • zrank <key>  <value>                 返回该值在集合中的排名,从0开始。

Redis配置文件介绍

  • 自定义目录:/myredis/redis.conf  使用vim 进行编辑查看

Units单位

  • 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
  • 大小写不敏感

includes包含

  • 类似jsp中的include,多实例的情况可以把公用的配置文件提取出来

网络相关配置

bind

  • 默认情况bind=127.0.0.1只能接受本机的访问请求
  • 不写的情况下,无限制接受任何ip地址的访问
  • 生产环境肯定要写你应用服务器的地址;服务器是需要远程访问的,所以需要将其注释掉
  • 如果开启了protected-mode,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的相应
  • 保存配置,停止服务,重启启动查看进程,不再是本机访问了。

protected-mode

  • 将本机访问保护模式设置no
  • 保护模式,和bind一起使用

Port

  • 端口号,默认 6379

tcp-backlog

  • 设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。
  • 在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值(128),所以需要确认增大/proc/sys/net/core/somaxconn和/proc/sys/net/ipv4/tcp_max_syn_backlog(128)两个值来达到想要的效果

timeout

  • 一个空闲的客户端维持多少秒会关闭,0表示关闭该功能。即永不关闭

tcp-keepalive

  • 对访问客户端的一种心跳检测,每过n秒检测一次。
  • 单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60

GENERAL通用

daemonize

  • 是否为后台进程,设置为yes
  • 守护进程,后台启动

pidfile

  • 存放pid文件的位置,每个实例会产生一个不同的pid文件

loglevel

  • 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为notice
  • 四个级别根据使用阶段来选择,生产环境选择notice 或者warning

logfile

  • logfile "" 代表不持久化保存日志
  • 日志文件名称

databases 16

  • 设定库的数量 默认16,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id

SECURITY安全

设置密码

  • 访问密码的查看、设置和取消
    1. 在命令中设置密码,只是临时的。重启redis服务器,密码就还原了。
    2. 永久设置,需要再配置文件中进行设置。

LIMITS限制

maxclients

  • 设置redis同时可以与多少个客户端进行连接。
  • 默认情况下为10000个客户端。
  • 如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached”以作回应。

maxmemory

  • 建议必须设置,否则,将内存占满,造成服务器宕机
  • 设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。
  • 如果redis无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”,那么redis则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等。
  • 但是对于无内存申请的指令,仍然会正常响应,比如GET等。如果你的redis是主redis(说明你的redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因素。

maxmemory-policy

  • volatile-lru:使用LRU算法移除key,只对设置了过期时间的键;(最近最少使用)
  • allkeys-lru:在所有集合key中,使用LRU算法移除key
  • volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
  • allkeys-random:在所有集合key中,移除随机的key
  • volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
  • noeviction:不进行移除。针对写操作,只是返回错误信息
  • # volatile-lru -> Evict using approximated LRU among the keys with      an expire set.-  对所有的有过期时间的数据按照LRU算法移除565 # allkeys-lru -> Evict any key using approximated LRU.- 使用LRU的策略对所有的键进行移除566 # volatile-lfu -> Evict using approximated LFU among the keys with      an expire set.- 对有过期时间的数据按照LFU的算法移除567 # allkeys-lfu -> Evict any key using approximated LFU.568 # volatile-random -> Remove a random key among the ones with an ex     pire set.- 对有过期时间的键使用随机算法进行移除569 # allkeys-random -> Remove a random key, any key.570 # volatile-ttl -> Remove the key with the nearest expire time (min     or TTL)- 对有过期时间的键,移除即将要过期的键571 # noeviction -> Don't evict anything, just return an error on writ     e operations.- 不做任何操作,当内存满了还有写操作时,直接返回一个错误572 #573 # LRU means Least Recently Used最近最少使用(按时间)  离最近时间最远574 # LFU means Least Frequently Used使用次数最少(按次数)   最不常使用

    maxmemory-samples

  • 设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个。
  • 一般设置3到7的数字,数值越小样本越不准确,但性能消耗越小。

Redis_Jedis_测试

Jedis所需要的jar包

  • commons-pool2-2.4.2.jar
  • jedis-2.8.1.jar

连接Redis注意事项

  • 禁用Linux的防火墙:Linux(CentOS7)里执行命令:systemctl stop/disable firewalld.service  
  • redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no
  1. 创建maven项目
  2. 在pom中引入maven的依赖
<dependencies><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.6.1</version></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency>
</dependencies>

3. 创建java类,在main中测试redis的连接

package com.atguigu.jedis;import redis.clients.jedis.Jedis;public class JedisTest {/*** JedisConnectionException: java.net.SocketTimeoutException:*      错误排查:*             1.1  检查reids是否启动*                  xhsell中: ps -aux|grep redis*             1.2 检查虚拟机防火墙是否关闭*             1.3 redis保护模式必须关闭*                  vim  /myredis/redis.conf*                     69行 , 注释bind 127.0.0.1*                      88行,protected-mode yes改为no*                      重启redis服务*/public static void main(String[] args) {//java代码连接redis步骤//1、获取连接Jedis jedis = new Jedis("192.168.1.130", 6379);//2、使用连接对象发送命名操作redisString ping = jedis.ping();System.out.println("ping = " + ping);//3、关闭连接jedis.close();}
}

Redis_事务_锁机制_秒杀

Redis的事务定义

  • Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
  • Redis事务的主要作用就是串联多个命令防止别的命令插队。

Multi、Exec、discard

  • 从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。
  • 组队的过程中可以通过discard来放弃组队。 
  • 组队成功,提交成功

  • 组队阶段保存,提交失败

  • 组队成功,提交有成功,有失败

事务的错误处理

  • 组队中某个命令出现了报告错误,执行时整个的所有队列都会被取消。
  • 如果执行阶段某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚。

悲观锁

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁表锁等,读锁写锁等,都是在做操作之前先上锁。

  • 悲观锁:请求获取到数据时会加锁,其他请求等待锁释放才可以争抢锁使用[高并发写操作为了保证数据安全可以使用, R数据库]

乐观锁

乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量Redis就是利用这种check-and-set机制实现事务的。

  • 乐观锁:对数据加版本号,当请求获取数据时会一起获取到版本号,其他请求读取数据也没有问题,当任意一个请求修改数据时,乐观锁会检查数据的版本号,如果请求数据的版本号和存储数据的版本号一致,可以修改,并提升版本号。如果获取了修改前数据版本号的其他请求再修改数据一定会失败[高并发读操作]

WATCH key[key...]

  • 在执行multi之前,先执行watch key1 [key2],可以监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

unwatch

  • 取消 WATCH 命令对所有 key 的监视。
  • 如果在执行 WATCH 命令之后, EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行 UNWATCH 了。

Redis事务三特性

  • 单独的隔离操作
    1. 事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 
  • 没有隔离级别的概念
    1. 队列中的命令没有提交之前都不会实际被执行,因为事务提交前任何指令都不会被实际执行
  • 不保证原子性
    1. 事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚 

案例分析

  • java程序可以处理用户从程序的页面中提交的秒杀请求
  • 项目中需要存储秒杀商品的数据,用户秒杀成功后,项目中也需要保存秒杀成功的用户

1、在redis中初始化秒杀的库存

在redis中:set sk:10001:qt 5

2、开发秒杀项目:

2.1 创建maven web工程[引入springmvc+spring依赖+commons-pool2+jedis]

 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><!-- 基础框架 --><spring.version>5.2.5.RELEASE</spring.version></properties><dependencies><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.6.1</version></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency><!-- 基础框架 --><!-- Spring配置 --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency></dependencies>

2.2 web.xml中配置

 <!-- DispatcherServlet --><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

2.3 在resources下创建spring/springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- controller组件的扫描 --><context:component-scan base-package="com.atguigu.sk"></context:component-scan><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"></property><property name="suffix" value=".jsp"></property></bean><!-- 静态资源放行的Servlet--><mvc:default-servlet-handler></mvc:default-servlet-handler><!-- 注解驱动 --><mvc:annotation-driven></mvc:annotation-driven>
</beans>

2.4 创建秒杀页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>尚筹网-秒杀页面</title><script src="jquery/jquery-2.1.1.min.js" type="text/javascript"></script>
</head>
<body>
<form action="sk/doSecondKill" method="post"><input type="hidden" name="id" value="10001"><a  href="#">点击参与1元秒杀Iphone11promax</a>
</form>
<script type="text/javascript">$("a").click(function () {$.ajax({type:"post",url:$("form").prop("action"),data:$("form").serialize(),success: function (res) {if(res=="ok"){alert("秒杀成功");}else{alert(res);$("a").prop("disabled" , true);}}});return false;});
</script>
</body>
</html>

2.5 创建COntroller处理秒杀请求

@RestController //等价于  Controller+方法上的 ResponseBody
public class SecondKillController {//sk/doSecondKill@PostMapping(value = "/sk/doSecondKill",produces = "text/html;charset=UTF-8")public String doSk(Integer id){//随机生成用户idInteger usrid = (int)(10000*Math.random());//秒杀商品的idInteger pid = id;//秒杀业务//拼接商品库存的key和用户列表集合的keyString qtKey = "sk:"+pid+":qt";String usrsKey = "sk:"+pid+":usr";Jedis jedis = new Jedis("192.168.1.130", 6379);//1、判断该用户是否已经秒杀过if(jedis.sismember(usrsKey, usrid + "")){System.err.println("重复秒杀:"+usrid);return "该用户已经秒杀过,请勿重复秒杀";}//2、获取redis中的库存,判断是否足够String qtStr = jedis.get(qtKey);if(StringUtils.isEmpty(qtStr)){System.err.println("秒杀尚未开始");return "秒杀尚未开始";}int qtNum = Integer.parseInt(qtStr);if(qtNum<=0){System.err.println("库存不足");return "库存不足";}//3、库存足够,秒杀的业务//减库存jedis.decr(qtKey);//将用户加入到秒杀成功的列表中jedis.sadd(usrsKey , usrid+"");System.out.println("秒杀成功:"+ usrid);return "ok";}
}

使用ab模拟高并发测试秒杀项目

1、初始化库存 :set sk:10001:qt 100

2、在xshell中使用ab高并发测试:http://主机ip地址:8888/SecondKill_war/sk/doSecondKill

http://192.168.1.1:8888/SecondKill_war/sk/doSecondKill

先创建postfile.txt文件:文件中保存要提交的请求参数

id=10001&

ab -n8000 -c500 -p postfile.txt -T application/x-www-form-urlencoded http://192.168.1.1:8888/SecondKill_war/sk/doSecondKill

高并发时多线程请求,有可能会导致超卖

利用事务解决超卖问题

每个请求再controller中被处理秒杀请求时,将多个命令组成队列,再对要使用的库存添加乐观锁

在使用库存前,对库存的键添加乐观锁,高并发访问时,每个请求使用数据都会携带版本。多个请求同时获取相同版本的数据,最多只能有一个修改。

 @PostMapping(value = "/sk/doSecondKill",produces = "text/html;charset=UTF-8")public String doSk(Integer id){//随机生成用户idInteger usrid = (int)(10000*Math.random());//秒杀商品的idInteger pid = id;//秒杀业务//拼接商品库存的key和用户列表集合的keyString qtKey = "sk:"+pid+":qt";String usrsKey = "sk:"+pid+":usr";Jedis jedis = new Jedis("192.168.1.130", 6379);//1、判断该用户是否已经秒杀过if(jedis.sismember(usrsKey, usrid + "")){System.err.println("重复秒杀:"+usrid);return "该用户已经秒杀过,请勿重复秒杀";}//2、获取redis中的库存,判断是否足够//对库存的key 进行watch//==================================================jedis.watch(qtKey);String qtStr = jedis.get(qtKey);if(StringUtils.isEmpty(qtStr)){System.err.println("秒杀尚未开始");return "秒杀尚未开始";}int qtNum = Integer.parseInt(qtStr);System.out.println("库存 = " + qtNum);if(qtNum<=0){System.err.println("库存不足");return "库存不足";}//3、库存足够,秒杀的业务//减库存//======================================================Transaction multi = jedis.multi();//开启redis的组队multi.decr(qtKey);//将用户加入到秒杀成功的列表中multi.sadd(usrsKey , usrid+"");multi.exec();System.out.println("秒杀成功:"+ usrid);jedis.close();return "ok";}

乐观锁导致的问题:

库存剩余的问题。多个并发的线程同时修改数据时,只能有一个修改成功

公平性的问题,先来的线程由于乐观锁可能会秒杀失败

利用lua脚本解决库存剩余问题

LUA脚本:小脚本语言

redis支持解析lua脚本,lua脚本可以将java代码中的业务逻辑和对redis的操作封装成一个lua脚本,一次性交给redis执行 ,lua脚本也有原子性,不会被打断

static String secKillScript = "local userid=KEYS[1];\r\n"+ "local prodid=KEYS[2];\r\n"+ "local qtkey='sk:'..prodid..\":qt\";\r\n"+ "local usersKey='sk:'..prodid..\":usr\";\r\n"+ "local userExists=redis.call(\"sismember\",usersKey,userid);\r\n"+ "if tonumber(userExists)==1 then \r\n"+ "   return 2;\r\n"+ "end\r\n"+ "local num= redis.call(\"get\" ,qtkey);\r\n"+ "if tonumber(num)<=0 then \r\n"+ "   return 0;\r\n"+ "else \r\n"+ "   redis.call(\"decr\",qtkey);\r\n"+ "   redis.call(\"sadd\",usersKey,userid);\r\n"+ "end\r\n"+ "return 1";@PostMapping(value = "/sk/doSecondKill",produces = "text/html;charset=UTF-8")
public String doSkByLUA(Integer id){//随机生成用户idInteger usrid = (int)(10000*Math.random());Jedis jedis = new Jedis("192.168.1.130", 6379);//加载LUA脚本String sha1 = jedis.scriptLoad(secKillScript);//将LUA脚本和LUA脚本需要的参数传给redis执行:keyCount:lua脚本需要的参数数量,params:参数列表Object obj = jedis.evalsha(sha1, 2, usrid + "", id + "");// Long 强转为Integer会报错  ,Lange和Integer没有父类和子类的关系int result = (int)((long)obj);if(result==1){System.out.println("秒杀成功");return "ok";}else if(result==2){System.out.println("重复秒杀");return "重复秒杀";}else{System.out.println("库存不足");return "库存不足";}
}

//jedis连接池:

public class JedisPoolUtil {private static volatile JedisPool jedisPool = null;//私有构造器private JedisPoolUtil(){}public static JedisPool getJedisPoolInstance() {if (null == jedisPool) {synchronized (JedisPoolUtil.class) {if (null == jedisPool) {JedisPoolConfig poolConfig = new JedisPoolConfig();poolConfig.setMaxTotal(200);poolConfig.setMaxIdle(32);poolConfig.setMaxWaitMillis(1 * 1000);poolConfig.setBlockWhenExhausted(true);poolConfig.setTestOnBorrow(true);jedisPool = new JedisPool(poolConfig, "192.168.1.130", 6379, 60000);}}}return jedisPool;}public static void release(JedisPool jedisPool, Jedis jedis) {if (null != jedis) {jedisPool.returnResource(jedis);}}}
//使用
Jedis jedis = JedisPoolUtil.getJedisPoolInstance().getResource();

redis持久化

以快照集的形式 在一定时间间隔后保存到本地硬盘上

当redis服务端需要加载数据时直接可以加载到内存中

 

在redis.conf配置文件中,253行可以修改rdb持久化文件的名称

在263行可以修改redis自己创建文件的基准地址

设置持久化备份文件的存放位置263 dir /myredis/
rdb备份的保存策略218 save 900 1219 save 300 10220 save 60 10000

redis中执行命令时,如果执行save(同步)或者bgsave(异步),也可以触发redis使用rbd的方式将内存的数据写入到rdb文件

redis正常关闭时,也会自己调用bgsave完成数据的备份

flushdb也是写指令,如果触发redis的保存策略,也会覆盖dump.rdb文件

 

使用rbd文件防止误删除操作:

1、每隔一段时间对dump.rdb文件进行备份

cp dump.rdb dump-20-5-27.rdb.bak

2、如果redis中有误操作删除了redis中所有的数据

flushdb

3、借助备份rdb文件恢复误删除的数据

先停止redis服务

cp dump-20-5-27.rdb.bak dump.rdb

4、重启redis服务

 

rdb压缩保存,节省磁盘空间,文件不可读

235 stop-writes-on-bgsave-error yes  当bgsave执行时如果有错误停止写操作241 rdbcompression yes  压缩保存数据250 rdbchecksum no   检查数据完整性,比较消耗性能

rdb优点:

Ø 适合大规模的数据恢复

Ø 对数据完整性和一致性要求不高更适合使用

Ø 节省磁盘空间

Ø 恢复速度快

 

 

 

 

 

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

相关文章

  1. 初学JS

    5-28:LeetCode与JSLeetCode每日一题:第一题JS:今日所学总结 LeetCode每日一题:第一题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使…...

    2024/4/24 8:52:06
  2. 深度学习实践(一)

    模模糊糊的选课终于结束了,猛然发现每周多了一天假期哇(不是) 一直在担心的军事理论也应该能重修了,如果疫情一直没有缓解的话,大方向应该是保研没错了(但真心想考一次托福,也想出去看看呢) 眼看快期末了,把上一周的深度学习入门的东西又看了看。第一次写了一个辨别猫脸的…...

    2024/4/24 8:52:13
  3. 流程控制语句

    第一章 流程控制 1.1 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果 有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现 我们要完成的功能。 1.2 顺序结…...

    2024/4/24 8:52:04
  4. Linux——网络应用与服务

    网络应用与服务 客户端必须与它们相应的网络服务器连接起来才能正常工作。Unix服务器有很多种形式。服务器程序直接或间接地监听端口。另外,服务器功能各异,但没有通用的配置数据库。大多数服务器通过配置文件(尽管格式不统一)来定义自身的行为,并使用操作系统的syslog服务…...

    2024/4/24 8:52:03
  5. Python中定时任务框架APScheduler入门教程

    前言 更多内容,请访问我的 个人博客。谈到定时任务,大家可能会优先想到 linux 中的 crontab ,或者 windows 中的任务计划。这些工具用起来都很方便,但是说出来你可能不信,最近我在生信流程中使用 crontab 命令完成一些自动化操作时,遇到问题了。 不知是不是 crontab 命令…...

    2024/4/24 8:52:02
  6. Python 100——Day 5

    练习经典的例子寻找水仙花数(3位)正整数的反转百钱百鸡问题CRAPS赌博游戏斐波那契数列(Fibonacci sequence)前20个寻找完美数(10000以内)100内的素数#三位数的水仙花数 #每个位数上的立方加起来等于这个数 for number in range(100,1000):first = number//100sec = numbe…...

    2024/4/26 14:04:36
  7. CSRF和SSRF漏洞

    CSRF漏洞简介 CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。具体来讲,可以这样理解CSRF攻击:攻击者…...

    2024/4/16 13:39:38
  8. 提词器App,录制短视频的神器,解决背台词和卡壳的烦恼

    如果录制短时受背台词和卡壳困扰,那么这个App完全可以解救你。 运行时文稿滚动播放,可以设置文字大小适应远或近的应用场景;滚动速度设置中既可以选择固定速度也可以选择固定时长,无论你是多长的文稿,程序会计算字数和速度,帮你在限定时间内完成,尤其适合微信视频号和抖…...

    2024/5/7 2:50:17
  9. java复习第8天---8.4---IO流---缓冲流

    java复习第8天---8.4---IO流---缓冲流目录文章目录1、缓冲流1.1、概述1.2、原理1.3、BufferedInputStream1.4、BufferedOutputStream1.5、BufferedReader1.6、BufferedWriter1.8、新方法1.7、小案例***后记*** :内容1、缓冲流 1.1、概述缓冲流,又名高效流。是对4个基本流的增…...

    2024/5/7 6:16:04
  10. Java发展历史

    James-Golsing(詹姆斯-高斯林)简介 *1955年 James-Golsing 詹姆斯-高斯林,业内人士也常常调侃为高司令,计算机语言的天才出生了。 高司令14岁在大学计算机中心学习编程,15岁为大学天文系编写了一套分析卫星,处理天文数据的系统,被招聘为临时编程员。 80年代初期,高司令获…...

    2024/5/6 21:37:17
  11. hook进阶:linux下捕获进程的退出

    相信看过前面相关文章的朋友,都可以看出,hook系统调用其实还是比较简单(以open为例):1、获取系统调用表首地址,可以看这篇;2、替换系统调用为自定义的函数(my_hook_open)地址:sys_call_table[__NR_open]=my_hook_open;但是,事情往往不是都那么简单,这种只能hook到系统…...

    2024/4/20 7:06:02
  12. java 内存溢出 栈溢出的原因与排查方法

    https://my.oschina.net/u/2401092/blog/1621850...

    2024/5/7 6:22:05
  13. Java中的四种权限修饰符

    public > protected > (default) > private同一个类 y y y y 我自己同一个包 y y y n 我邻居不同包子类 y y …...

    2024/4/16 13:39:23
  14. 10. 比较两个等长的字符串,若相同,则输出Match!,若不同,则输出No Match!。

    10. 比较两个等长的字符串,若相同,则输出Match!,若不同,则输出No Match!。 data segmentstr1 db computerstr2 db computerlen dw $-str2 ;$有指针的意思mesg1 db Match!$mesg2 db No Match!$ ;$字符串的结束符 data ends code segmentassume c…...

    2024/4/16 13:39:43
  15. 利用Python进行电商网站用户行为分析

    电商网站用户行为分析 项目需求 1.用户整体购物情况怎样?统计数据集中总的用户数,商品数,商品类别数,用户行为数。 核心指标如PV,UV,跳出率,复购率,留存率等分别是多少?2.用户的购物行为情况。 3.统计出每天各种行为的访问次数。 4.找出购买率最高的前二十个商品品类。…...

    2024/4/24 8:52:03
  16. #关于C++派生类构造函数的用法

    本人是小白一名,最近在学习c++。在学习的过程中,遇到c++类继承问题,如何继承基类的构造函数下面直接上例子 class A { public: A(int b) { … … … .}; } class B:public A { public: B(int a):A(a) { … … … } }; 这里小白随便说几句一般都要在类里面声明构造函数是publ…...

    2024/5/6 21:31:30
  17. Gerapy安装macOS

    由于所需众多包版本跟环境的包冲突,所需在虚拟环境中安装本次安装版本 gerapy ==0.9.2 scrapy==1.6.0 #安装scrapy版本太高会导致gerapy初始化失败ps:mac中安装gerapy,由于在虚拟环境中安装会报错:mac “command gcc failed with exit status 1”,解决办法: xcode-s…...

    2024/4/24 8:51:59
  18. Thymeleaf:org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expres问题解决

    我在前端使用Thymeleaf以及layui的表格数据的时候,出现了下面这个问题查阅资料以及参考才发现:原因在于这里进行换行操作问题就轻易解决了:...

    2024/4/24 8:51:58
  19. golang异常处理详解

    小熊今天有意外收获,忍不住给大家分享我愉快的心情!昨天中午下楼取外卖的时候被一个同事认出来了,他问我:“是不是【编程三分钟】的作者,文章写的不错”。 你知道吗!我当时就是一愣,然后差点感动到哭出来,虽然小熊的号比不上大牛的号,不能随便发一篇文章都有成千上万的…...

    2024/4/24 8:51:59
  20. Linux下安装JDK

    1.创建存储目录 cd /usr/local mkdir java2.下载安装包 Jdk8官方下载地址:传送门 官网需要登录账户版本:jdk-8u144-linux-x64这里附录百度云下载地址:链接: https://pan.baidu.com/s/1ApJldBxN54ejPrgL059xOg 提取码: vyxp 3.安装 将下载完成的安装包上传到服务器3.1解压文件…...

    2024/5/7 4:45:00

最新文章

  1. (第11天)【leetcode题解】344、反转字符串 541、反转字符串II #替换数字

    目录 344、反转字符串题目描述思路代码 反转字符串II题目描述思路代码 替换数字题目描述思路代码 344、反转字符串 题目描述 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必…...

    2024/5/7 7:06:42
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/6 9:38:23
  3. 从头开发一个RISC-V的操作系统(二)RISC-V 指令集架构介绍

    文章目录 前提ISA的基本介绍ISA是什么CISC vs RISCISA的宽度 RISC-V指令集RISC-V ISA的命名规范模块化的ISA通用寄存器Hart特权级别内存管理与保护异常和中断 目标&#xff1a;通过这一个系列课程的学习&#xff0c;开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提…...

    2024/5/5 1:33:57
  4. 整理的微信小程序日历(单选/多选/筛选)

    一、日历横向多选&#xff0c;支持单日、双日、三日、工作日等选择 效果图 wxml文件 <view class"calendar"><view class"section"><view class"title flex-box"><button bindtap"past">上一页</button&…...

    2024/5/5 8:50:30
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/7 5:50:09
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

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

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

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

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

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

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

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

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

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/5/4 23:54:56
  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