视频学习链接:https://www.bilibili.com/video/BV1mc411h719?from=search&seid=16419983121936876555


Nosql

现在处于大数据时代.

大数据一般的数据库无法进行分析处理的

大数据时代的3V:主要是描述问题的

1.海量Voume

2.多样Variety

3.实时Velocity

大数据时代的3高,主要是对程序的要求

1.高并发

2.高可扩

3.高性能(保证用户体验和性能)


NoSQL的四大分类

KV键值对:

  • 新浪:Redis
  • 美团:Redis+Tair
  • 阿里,百度:Redis+memecache

文档形数据库:

MongoDB(一般必须要掌握)

  • MongoDB,是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档
  • MongoDB,是一个介于关系型数据库和非关系型数据中中间的产品,MongoDB是非关系型数据库中功能最丰富,最像关系型数据库的

ConthDB

列存储数据库

  • HBase
  • 分布式文件系统

图关系数据库

myfriends

  • 他不是存图形,放的是关系,比如:朋友圈社交网络,广告推荐!
  • Neo4j,infoGrid

Redis

Redis是什么?

Redis(Remote Dictionary Server) ,远超字典服务,开源的,用c语言编写,支持网络,基于内存可持久化的日志型,Key-Value数据库.并提供多种语言的API.

redis会周期性的把更新的数据写入磁盘或者修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步

免费和开源!当下最热门的NoSql技术之一,也被称为结构化数据库.

Redis能干嘛?

1.内存存储,持久化,内存中是断电即失,所以持久化很重要(rdb,aof)

2.效率高,可以用于高速缓存

3.发布订阅系统

4.地图信息分析

5.计时器,计数器(浏览量等)

特性

1.多样的数据类型

2.持久化

3.集群

4.事务

.......

学习中需要用到的东西

redis中文:http://redis.cn/

redis推荐都是再linux服务器上搭建的,基于linux学习


redis官网:https://redis.io/

redis中文官网:http://redis.cn/

linux安装redis,我将redis安装在阿里云服务器的centos7.x系统上,用xshell6连接服务器,xftp6传送数据

先下载redis6.0 用xftp将安装包放入linux系统中(我放在opt目录) 运行安装包

redis6需要gcc5.3以上版本

centos7还是4.8.5

安装scl源
yum install centos-release-scl scl-utils-build

安装gcc9

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash

gcc -v查看版本

解压源码包

tar zxvf redis-6.0.5.tar.gz

然后全程 y

配置文件在 /opt/redis-6.0.5

我们备份配置文件 到/home中

然后修改/home中的redis-conf

vim redis-conf

    requirepass xxxxxxxxxx    # 设置访问密码注释掉 bind 127.0.0.1    # 设置redis为任何ip都可访问,如需设置指定ip,则添加bindprotected-mode no    # 设置为no,否则不能保证全网段进行访问daemonize yes    # 设置为yes,保证以守护进程的方式运行redis
运行文件在/opt/redis-6.0.5/src中

我们复制redis-server,redis-cli到/usr/local/bin中

然后输入redis-server /home/redis.conf启动服务

我这里还没有修改ip,只能本机访问

用redis-cli -p 6379测试连接

shutdown关闭连接

exit退出


redis-benchmark

redis自带的压力测试工具

//测试:100个并发连接 100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000

set请求测试

对10w个请求进行测试

100个并发客户端

每次写入3个字节

只有1台服务器来处理这些请求,单机性能

每秒平均处理82236.84次请求


基础知识

redis默认16个数据库

默认使用的是第0个

127.0.0.1:6379> select 3  //切换到第3个数据库
OK
127.0.0.1:6379[3]> DBSIZE //返回当前数据库的 key 的数量
(integer) 0

查看所以的key: keys *

清除当前的数据库: flushdb

清除全部数据库的内容: flushall

Redis是单线程的!

明白Redis是很快的,官方表示,Redis是基于内存操作的,CPU不是Redis性能瓶颈

Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了.

Redis是c语言写的,官方提供的数据为100000+的QPS,完全不必同样是使用key-vale的Memecache查!

Redis为什么单线程还这这么快?

1.误区:高性能的服务器一定是多线程的

2.误区2:多线程(CPU上下文会切换!)一定比单线程效率高!

CPU>内存>硬盘的速度

核心:redis是将所以的数据全部放在内存中的,所以用单线程操作就是效率最高的,多线程(cpu上下切换:耗时的操作!)对于内存系统来说,若干没有上下文切换效率就是最高,多次读写都在一个cpu上的,在内存情况下,就是最佳方案

127.0.0.1:6379> keys *  //获得当前数据库的所以key
1) "id"
2) "age"
3) "name"
127.0.0.1:6379> exists name    //判断name这个key是否存在
(integer) 1
127.0.0.1:6379> exists name1
(integer) 0
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> move name 1    //移除name这个key
(integer) 1
127.0.0.1:6379> exists name
(integer) 0
127.0.0.1:6379> keys *
1) "id"
2) "age"
127.0.0.1:6379> set name wangtao  //设置name-wangtao 这个key
OK
127.0.0.1:6379> keys *
1) "id"
2) "age"
3) "name"
127.0.0.1:6379> get name     //获得name这个key的value
"wangtao"
127.0.0.1:6379> expire name 10  //设置name这个key在10秒后删除
(integer) 1
127.0.0.1:6379> ttl name        //获得name这个key还能存活的时间
(integer) 1                     //还能存活1秒
127.0.0.1:6379> ttl name        
(integer) -2                    //已经不在数据库中
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> ttl age
(integer) -1                    //一直存在,没有设置key的存活时间
127.0.0.1:6379> ttl ag
(integer) -2
127.0.0.1:6379> 

查看key的类型:

127.0.0.1:6379> keys *
1) "id"
2) "age"
127.0.0.1:6379> type age
string
127.0.0.1:6379> type id
string

String(字符串)

string 字符串

127.0.0.1:6379> clear
127.0.0.1:6379> set key1 v1 //设置值
OK
127.0.0.1:6379> get key1    //获得值
"v1"
127.0.0.1:6379> keys *      //获得所有key
1) "key1"
127.0.0.1:6379> exists key1 //判断某个key是否存在
(integer) 1
127.0.0.1:6379> append key1 "abc" //追加字符串,如果当前key不存在,就相当于setkey
(integer) 5
127.0.0.1:6379> get key1
"v1abc"
127.0.0.1:6379> strlen key1
(integer) 5
127.0.0.1:6379> append key1 "kuangshen"
(integer) 14
127.0.0.1:6379> strlen kye1   //获得长度
(integer) 0
127.0.0.1:6379> strlen key1
(integer) 14
127.0.0.1:6379> get key1
"v1abckuangshen"

计数

127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views  //views 增1
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> decr views
(integer) 1
127.0.0.1:6379> incr views  //views 减1
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> incr views
(integer) 3
127.0.0.1:6379> incrby views 10 //views 增加10
(integer) 13
127.0.0.1:6379> decrby views 5  //views 减少10
(integer) 8

字符串范围截取 range

127.0.0.1:6379> set key1 "hellowangtao"
OK
127.0.0.1:6379> get key1
"hellowangtao"
127.0.0.1:6379> getrange key1 0 3  //获得[0,3]的字符串片段
"hell"
127.0.0.1:6379> getrange key1 0 -1 //获得所有字符串片段
"hellowangtao"

字符替换

127.0.0.1:6379> set key2 abcdefg
OK
127.0.0.1:6379> get key2
"abcdefg"
127.0.0.1:6379> setrange key2 1 xx  从1位置开始 将后面的字符串替换为xx,替换的长度和xx相同
(integer) 7
127.0.0.1:6379> get key2
"axxdefg"

设置key-value并设置过期时间

127.0.0.1:6379> setex key3 30 123abc
OK
127.0.0.1:6379> ttl key3
(integer) 23

不存在才就设置(在分布式锁中常常使用)

127.0.0.1:6379> set key1 3
OK
127.0.0.1:6379> keys *
1) "key1"
127.0.0.1:6379> setnx key1 4
(integer) 0
127.0.0.1:6379> setnx key2 5
(integer) 1
127.0.0.1:6379> keys *
1) "key1"
2) "key2"
127.0.0.1:6379> get key1
"3"
127.0.0.1:6379> get key2
"5"

批量设置key-value

127.0.0.1:6379> keys *
(empty array)
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"
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
3) "k3"

批量获得key-value

127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

同时设置,如果一个失败,则都失败(保证原子性)

127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> msetnx k1 gg k4 v4
(integer) 0
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get k4
(nil)

设置对象

127.0.0.1:6379> set user:1 {name:wangtao,age:22}
OK
127.0.0.1:6379> get user:1
"{name:wangtao,age:22}"127.0.0.1:6379> mset user:2:name zhangsan user:2:age 19
OK
127.0.0.1:6379> mget user:2:name user:2:age
1) "zhangsan"
2) "19"
//user:{id}:{filed},这种设计在redis中完全ok

getset 先get再set

127.0.0.1:6379> getset db redis//如果不存在,返回nil
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongdb//如果存在,获取原来的值,再设置新的值
"redis"
127.0.0.1:6379> get db
"mongdb"

使用场景:value除了字符串还可以是数字

  • 计数器
  • 统计多单位的数量
  • 粉丝数
  • 对象缓存存储

list

在redis里面,我们可以把list玩成栈,队列,阻塞队列

所有的list都是以l开头的,redis不区分大小写命令

push

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> lpush list one //将一个值从头部插入
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1 //获取list中的全部值
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1  //按区间获得list中的值
1) "three"
2) "two"
127.0.0.1:6379> rpush list abc  //将一个值从尾部插入
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "abc"

pop

127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lpop list  //移除第一个元素
"three"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> rpop list  //移除list最后一个元素
"one"
127.0.0.1:6379> lrange list 0 -1
1) "two"

通过下标获得值

127.0.0.1:6379> lrange list 0 -1
1) "c"
2) "b"
3) "a"
4) "two"
127.0.0.1:6379> lindex list 1
"b"
127.0.0.1:6379> lindex list 0
"c"

获得list长度

127.0.0.1:6379> llen list
(integer) 4

移除指定的值

127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "c"
3) "b"
4) "a"
5) "two"
127.0.0.1:6379> lrem list 1 a   //移除1个指定的值,从头部开始
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "c"
2) "b"
3) "a"
4) "two"127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "c"
3) "b"
4) "a"
5) "two"
127.0.0.1:6379> lrem list 2 a  //移除2个a
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "c"
2) "b"
3) "two"

只保留指定的值  ltrim   xx   a b   除了[a,b]区间的元素,别的元素全部删除

127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "hello1"
3) "hello2"
4) "hello3"
127.0.0.1:6379> ltrim mylist 1 2
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello1"
2) "hello2"
127.0.0.1:6379> 

lpoplpush 移除列表最后的一个元素,并将其移动到新的列表中

127.0.0.1:6379> lpush mylist "hello"
(integer) 1
127.0.0.1:6379> lpush mylist "hello1"
(integer) 2
127.0.0.1:6379> lpush mylist "hello2"
(integer) 3
127.0.0.1:6379> rpoplpush mylist mylist2
"hello"
127.0.0.1:6379> lrange mylist 0 -1
1) "hello2"
2) "hello1"
127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
127.0.0.1:6379> 

修改指定下标的元素,若这个位置没有元素,则返回(error) ERR no such key

127.0.0.1:6379> lrange list 0 -1
1) "bb"
2) "aa"
127.0.0.1:6379> lset list 0 cc
OK
127.0.0.1:6379> lrange list 0 -1
1) "cc"
2) "aa"

在指定元素前/后插入一个指定的值

127.0.0.1:6379> lrange list 0 -1
1) "aa"
2) "bb"
3) "cc"
127.0.0.1:6379> linsert list before cc xx  //在cc前插入xx
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "aa"
2) "bb"
3) "xx"
4) "cc"
127.0.0.1:6379> linsert list after bb yy   //在bb后面插入yy
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "aa"
2) "bb"
3) "yy"
4) "xx"
5) "cc"
127.0.0.1:6379> 

小结

  • 它实际上是一个链表,before node after,left,rigth都可以插入值
  • 如果key不存在,创建新的链表
  • 如果key存在,新增内容
  • 如果移除了所有的值,空链表,也代表不存在
  • 在两边插入或改动值,效率最高!中间元素,相当来说效率会低一点

消息队列(Lpush,Rpop) ,栈(Lpush,Lpop)


set

set中的值是不重复的

127.0.0.1:6379> sadd myset aa  //插入1个值,若插入成功,返回1,反之返回0
(integer) 1
127.0.0.1:6379> sadd myset bb
(integer) 1
127.0.0.1:6379> sadd mysey cc
(integer) 1
127.0.0.1:6379> smembers myset //输出set所有的值
1) "bb"
2) "aa"
127.0.0.1:6379> sadd myset aa  //重复插入,返回0
(integer) 0
127.0.0.1:6379> sismember myset bb  //判断set中是否有bb这个元素,1表示有,0表示没有
(integer) 1
127.0.0.1:6379> sismember myset dd
(integer) 0
127.0.0.1:6379> 

获取set的元素个数

127.0.0.1:6379> scard myset
(integer) 2

移除元素

127.0.0.1:6379> srem myset bb
(integer) 1
127.0.0.1:6379> smembers myset
1) "aa"

随机获得一个元素

127.0.0.1:6379> smembers myset
1) "aa"
2) "dd"
3) "cc"
127.0.0.1:6379> srandmember myset
"cc"
127.0.0.1:6379> srandmember myset
"dd"
127.0.0.1:6379> srandmember myset
"dd"
127.0.0.1:6379> srandmember myset
"aa"
127.0.0.1:6379> srandmember myset
"cc"

随机删除一个元素

127.0.0.1:6379> spop myset 1
1) "aa"

将一个指定的值,移动到另外一个set中

127.0.0.1:6379> smembers myset
1) "bb"
2) "aa"
3) "cc"
127.0.0.1:6379> smembers myset2
1) "11"
2) "22"
3) "33"
127.0.0.1:6379> smove myset myset2 aa
(integer) 1
127.0.0.1:6379> smembers myset
1) "bb"
2) "cc"
127.0.0.1:6379> smembers myset2
1) "aa"
2) "22"
3) "33"
4) "11"

微博,B站,共同关注(并集)

数学集合:

  • 差集
  • 交集
  • 并集
127.0.0.1:6379> smembers myset
1) "bb"
2) "aa"
3) "tom"
127.0.0.1:6379> smembers myset2
1) "22"
2) "tom"
3) "11"
127.0.0.1:6379> sdiff myset myset2 //差集,myset有myset2没有的
1) "aa"
2) "bb"
127.0.0.1:6379> sinter myset myset2//交集
1) "tom"
127.0.0.1:6379> sunion myset myset2//并集
1) "22"
2) "tom"
3) "bb"
4) "aa"
5) "11"

微博,a用户将所有关注的人放在一个set集合中,将它的粉丝也放在一个集合中

共同关注,共同爱好,二度好友,推荐好友


Hash(哈希)

map集合,key-map 这个值是一个map集合,本质和string类型没有太大区别,还是一个简单的key-value

127.0.0.1:6379> hset myhash field1 wangtao //set一个具体的key-value
(integer) 1
127.0.0.1:6379> hget myhash field1   //获取一个字段值
"wangtao"
127.0.0.1:6379> hmset myhash field1 aa field2 bb  //set多个具体的key-value
OK
127.0.0.1:6379> hmget myhash field field2 //获取多个字段值
1) (nil)
2) "bb"
127.0.0.1:6379> hmget myhash field1 field2
1) "aa"
2) "bb"
127.0.0.1:6379> hgetall myhash  //获取全部数据
1) "field1"
2) "aa"
3) "field2"
4) "bb"
127.0.0.1:6379> hdel myhash field1//删除指定的key-value
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "bb"

获得hash表中字段数目

判断是否存在

127.0.0.1:6379> hgetall myhash
1) "field2"
2) "bb"
3) "field1"
4) "aa"
5) "field3"
6) "cc"
127.0.0.1:6379> hlen myhash//获取字段长度
(integer) 3
127.0.0.1:6379> hexists myhash field1//判断指定字段是否存在
(integer) 1
127.0.0.1:6379> hexists myhash field4
(integer) 0

只获得所有的key/value

127.0.0.1:6379> hkeys myhash
1) "field2"
2) "field1"
3) "field3"
127.0.0.1:6379> hvals myhash
1) "bb"
2) "aa"
3) "cc"

对一个value为数的字段进行+/-

127.0.0.1:6379> hset myhash field5 3
(integer) 1
127.0.0.1:6379> hincrby  myhash field5 3//指定增量
(integer) 6
127.0.0.1:6379> hincrby myhash field5 -1
(integer) 5
127.0.0.1:6379> hsetnx myhash field3 xx//不存在才设置
(integer) 0
127.0.0.1:6379> hsetnx myhash field4 vv
(integer) 1

hash变更的数据,经常变动的信息,更适合对象的存储,string更适合字符串


Zset(有序集合)

redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员

不同的是 zset 的每个元素都会关联一个分数(分数可以重复),redis 通过分数来为集合中 的成员进行从小到大的排序.

127.0.0.1:6379> zadd myzset 1 one
(integer) 1
127.0.0.1:6379> zadd myzset 2 two
(integer) 1
127.0.0.1:6379> zadd myzset 3 three 4 four
(integer) 2
127.0.0.1:6379> zrange myzset 0 -1
1) "one"
2) "two"
3) "three"
4) "four"

排序

127.0.0.1:6379> zadd salary 2500 wangtao
(integer) 1
127.0.0.1:6379> zadd salary 6500 zhangsan
(integer) 1
127.0.0.1:6379> zadd salary 1500 lisi
(integer) 1
127.0.0.1:6379> zrangebyscore salary -inf +inf//升序
1) "lisi"
2) "wangtao"
3) "zhangsan"
127.0.0.1:6379> zrevrangebyscore salary +inf -inf//降序
1) "zhangsan"
2) "wangtao"
3) "lisi"
127.0.0.1:6379> zrangebyscore salary -inf +inf withscores//查询并显示分数
1) "lisi"
2) "1500"
3) "wangtao"
4) "2500"
5) "zhangsan"
6) "6500"

删除一个元素

127.0.0.1:6379> zrangebyscore salary -inf +inf
1) "zhangsan"
2) "wangtao"
3) "lisi"
127.0.0.1:6379> zrem salary lisi
(integer) 1
127.0.0.1:6379> zrange salary 0 -1
1) "zhangsan"
2) "wangtao"

显示集合元素数目

127.0.0.1:6379> zcard salary
(integer) 2

获取区间范围内元素数目

127.0.0.1:6379> zcount salary -inf +inf
(integer) 2
127.0.0.1:6379> zcount salary 3000 4000
(integer) 1

我们工作中有需要,就去看官方文档

案例思路:set 排序,存储班级成绩表,工资表排序

带权重执行,排行榜实现


geospatial

这个功能可以推算地理位置的信息,两地的距离

只有6个命令

//两极无法添加,我们一般会下载城市数据,直接通过java程序导入
127.0.0.1:6379> geoadd china:city 116.23128 40.22077 beijing  //把城市的经纬度信息加入redis中
(integer) 1
127.0.0.1:6379> geoadd china:city 121.48941 31.40527 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.54041 29.40268 chongqing
(integer) 1
127.0.0.1:6379> geoadd china:city 113.88308 22.55329 shenzheng
(integer) 1
127.0.0.1:6379> geoadd china:city 108.93425 34.23053 xian
(integer) 1
127.0.0.1:6379> geopos china:city beijing//获取城市的经纬度
1) 1) "116.23128265142440796"2) "40.22076905438526495"

计算两地直线距离

后面可以加单位:默认是米,km 千米,mi 英里,ft英尺

127.0.0.1:6379> geodist china:city beijing xian
"927537.1497"
127.0.0.1:6379> geodist china:city beijing chongqing km
"1491.5364"

查询某位置半径内的元素

127.0.0.1:6379> georadius china:city  110 30 1000 km//输入在地点经纬度为(110,30),1000km内的元素.
1) "chongqing"
2) "xian"
3) "shenzheng"
127.0.0.1:6379> georadius china:city 110 30 1000 km withcoord//同时输出经纬度信息
1) 1) "chongqing"2) 1) "106.54040783643722534"2) "29.40268053517299762"
2) 1) "xian"2) 1) "108.93425256013870239"2) "34.23053097599082406"
3) 1) "shenzheng"2) 1) "113.88307839632034302"2) "22.55329111565713873"
127.0.0.1:6379> georadius china:city 110 30 1000 km count 2//只输入2个
1) "chongqing"
2) "xian"

查询一个元素附近的功能

127.0.0.1:6379> georadiusbymember china:city beijing 1000 km//查询距离北京1000km内的元素
1) "beijing"
2) "xian"

将经纬度转化为geohash字符串

127.0.0.1:6379> geohash china:city beijing chongqing
1) "wx4sucvncn0"
2) "wm5z22s7520"

Hyperloglog

什么是基数?

A{1,3,5,7,8,7}

B{1,3,5,7,8}

Redis2.8.9版本更新了Hyperloglog数据结构

Redis Hyperloglog基数统计算法

优点:占用的内存是固定,2^64不同的元素计数,只需要用12k内存

网页的UV(一个人访问一个网站多次,但是还是算作一个人)

传统的方式,set保存用户id,然后统计set中的元素数目作为标准判断

这个方式如果保存大量的用户id,就会比较麻烦,我们的目的是为了计数,而不是保存用户id

测试使用:

127.0.0.1:6379> pfadd mykey a b c d   //创建第一组元素 mykey
(integer) 1
127.0.0.1:6379> pfadd mykey2 c d e f  
(integer) 1
127.0.0.1:6379> pfcount mykey          //统计mykey的基数数目
(integer) 4
127.0.0.1:6379> pfmerge mykey3 mykey mykey2  //合并两组mykey,mykey2生成mykey3
OK
127.0.0.1:6379> pfcount mykey3     //没有重复计算c,d
(integer) 6

如果允许容错,那么一定可以使用hyperloglog

如果不允许容错,就使用set或者自己的数据类型即可


Bitmap

位存储

统计用户信息,活跃,不活跃,登陆,未登录,打卡,365打卡,两个状态,都可以使用bitmaps

bitmaps位图,数据结构,都是二进制位来进行记录,就只有0和1两个状态

365天=365bit 1字节=8bit 46个字节左右

测试:

127.0.0.1:6379> setbit sign 0 1
(integer) 0
127.0.0.1:6379> setbit sign 1 0
(integer) 0
127.0.0.1:6379> setbit sign 2 0
(integer) 0
127.0.0.1:6379> setbit sign 3 1
(integer) 0
127.0.0.1:6379> setbit sign 4 1
(integer) 0
127.0.0.1:6379> setbit sign 5 1
(integer) 0
127.0.0.1:6379> setbit sign 6 0
(integer) 0

查看指定天是否打卡

127.0.0.1:6379> getbit sign 6
(integer) 0
127.0.0.1:6379> getbit sign 0
(integer) 1
127.0.0.1:6379> getbit sign 3
(integer) 1

统计打卡天数

setbit key [start end]        统计key的第start~end字节有多少个值为1

这李的start一般从0开始,每个占8个数值,0就是[0,7]  1就是[8,15]

setbit key 0 3 :求[0,31]这个区间的范围1的个数

127.0.0.1:6379> setbit sign 0 1
(integer) 0
127.0.0.1:6379> setbit sign 5 1
(integer) 0
127.0.0.1:6379> setbit sign 11 1
(integer) 0
127.0.0.1:6379> setbit sign 15 1
(integer) 0
127.0.0.1:6379> setbit sign 19 1
(integer) 0
127.0.0.1:6379> bitcount sign 
(integer) 5
127.0.0.1:6379> bitcount sign 10 20
(integer) 0
127.0.0.1:6379> bitcount sign 1 3
(integer) 3
127.0.0.1:6379> bitcount sign 0 1
(integer) 4
127.0.0.1:6379> bitcount sign 0 2
(integer) 5
127.0.0.1:6379> bitcount sign 1 2
(integer) 3
127.0.0.1:6379> bitcount sign 2 5
(integer) 1
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Ubuntu16.04利用kalibr工具进行ZED2相机的标定

    1.Kalibr安装参考:https://github.com/ethz-asl/kalibr/wiki/installation1.安装依赖项sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-kinetic-vision-opencv ros-kinetic-image-transport-pl…...

    2024/4/16 8:44:27
  2. 我经历的那场2003年史称最难的一次高考!

    明天就是一年一度的高考了。今天陪小孩舅在宾馆落脚,去考场踩点,安排往返线路,完成考前的各项工作。今晚早睡,祝他旗开得胜!坐在宾馆的椅子上,突然回想起十七年前,我参加的那场高考,堪称奇葩。历史总是惊人的相似。2003年那年非典肆虐,就如今年来势凶猛的新冠疫情。当…...

    2024/4/16 8:45:18
  3. 软件测试之常见测试点(一)

    1.登录测试a.用户名界面:输入框 必填项:红色星号标识 弱提示:请输入用户名 提示信息:用户名为空时,提示 用户名不能为空b.密码界面:密码输入框 必填项:红色星号标识 弱提示:请输入用户名 提示信息:密码为空时,提示 密码不能为空c.登录界面:…...

    2024/4/16 8:45:18
  4. hualinux 进阶 1.4: centos8 docker CE 入门及安装(三)建立docker仓库

    目录一、docker仓库二、建立公共仓库2.1 注册并创建仓库2.2 使用docker命令登录2.3 修改镜像的 repository 使之与 Docker Hub 账号匹配2.4 上传镜像到hub.docker.com2.5 docker hub中查看镜像三、建立私有仓库3.1 说明3.2 安装及运行registry v23.2.1 下载registry3.2.2 运行r…...

    2024/4/25 2:59:44
  5. 初出茅庐的小李第28篇博客之MQTT学习笔记

    物联网学习入门篇之MQTT协议 MQTT: Massage Queuing Telemetry Transport,消息队列遥测传输 MQTT是基于互联网的基础协议TCP/IP协议而构建的,由IBM在1999年发布,基于发布和订阅两种模式(publish/subscribe)算是一种轻量级通讯协议,在2014年成为了OASIS开放标准,很多语言都…...

    2024/4/16 8:45:33
  6. 26个英文字母

    26个英文字母的正确发音:...

    2024/4/16 8:45:23
  7. C / C++系列 (3):heap vs. stack & new vs. malloc

    文章参考:细说new和malloc区别 Linux虚拟地址空间布局以及进程栈和线程栈总结 在内存分配中会涉及到栈和堆(和数据结构中的堆栈不同),所以先介绍以下在内存中栈和堆的区别 heap vs. stack key points:堆(heap):持久化、顺序随意、全局 栈(stack):临时、 后进先出、…...

    2024/4/16 8:45:13
  8. 选择、冒泡、插入详解

    每次努力一点点,记录进步。 选择排序,即为每次从一个数组中选出最大的数值进行排序,以升序为例,每次循环需要找出数组中最大的数进行排序。在这里需要注意,要实现选择排序,需要用到循环嵌套,每次内循环遍历未排序的数组,每进行一次外循环需要排好一个数据。核心代码如下…...

    2024/3/28 18:52:12
  9. (三)Druid数据库连接池如何回收线程源码分析

    (1)销毁连接线程核心逻辑: 首先需要先知道几个关键的对象代表的含义:DruidConnectionHolder[] evictConnections对象中的connection都是准备关闭的,放进去就说明准备最后一起批量关闭,参数 keepAliveCount 表示的是保活的连接数量参数 evictCount 代表的是evictConnection…...

    2024/4/19 12:32:08
  10. shell脚本-函数应用、脚本调试与sed工具

    shell函数应用 shell函数也是我们经常要使用的,因为有一些命令序列是需要反复调用执行的,若每次使用同一命令就重复写一遍,就会导致代码量很大,行数特别多。 为解决该问题我们可以将命令序列按格式写在一起,定义为一项函数,以便可以重复使用。 函数定义基本格式👇 [fun…...

    2024/4/20 3:58:41
  11. 多机数据库的实现

    复制(备份数据 负载均衡) redis通过设置 slaveof选项或运行 slaveof命令让一个服务器去复制另一个服务器。 旧版复制功能 同步(sync) 当客户向从服务器发送slaveof命令,从服务器进行同步操作,即将从服务器的数据库状态更新至主服务器当前所处的数据库状态。 从服务器对主…...

    2024/4/20 5:55:21
  12. Spring Boot 环境配置

    Spring Boot 环境配置一、准备工作工具下载二、Maven基本配置setting.xml 配置三、STS整合maven配置四、STS工具使用基本优化(选做) 一、准备工作 工具下载下载JDK1.8,并进行环境变量配置(假如已有则无需再次下载和配置)。 下载最新maven 点击下载 网址 :http://maven.ap…...

    2024/4/25 10:28:22
  13. 苏嵌嵌入式linux实训 第 5 天

    项目名称【苏嵌实训-嵌入式 linux C 第 5 天】今日进度以及任务学习使用Linux开发工具gcc gdb make本日任务完成情况创建静态库和动态库本日开发中出现的问题汇总各种指令使用不熟练,代码错误修改难本日未解决问题gcc部分指令操作,Makefile操作本日开发收获可以操作调试文件,…...

    2024/4/16 8:46:24
  14. 【NodeJS】服务器相关知识

    服务器相关知识 一. 服务器重定向就是服务器主动修改地址, 一般用于网站引导注册登录功能(访问首页是自动跳转到登录页) 服务器重定向用响应头的302状态码实现app.use((req,res)=>{res.writeHead(302,()=>{Location: http://127.0.0.1:8088/login.html;});res.end(); }…...

    2024/4/16 8:46:09
  15. idea下创建web项目

    1.建立一个Maven项目 2.3.path 路径改为C:\Users\14148\Desktop\daima\imooc-oa\src\main\webapp\WEB-INF\web.xml 版本改成3.15.6.7....

    2024/4/16 8:45:33
  16. 《C++PrimerPlus 6th Edition》第6章 分支语句和逻辑运算符 要点记录

    《C++PrimerPlus 6th Edition》第6章 分支语句和逻辑运算符 要点记录用cin.get(ch);逐字符计数时,字符总数中包括按回车键生成的换行符对于char ch;注意cout<<++ch;与cout<<ch+1;的区别(前者类型char、后者类型int)C++规定,||运算符是个顺序点(sequence point),…...

    2024/4/16 8:46:09
  17. simulink|运行时不小心关闭了波形显示框如何打开【MATLAB】

    如图:右键波形图模块点击这个就行 求赞*~*...

    2024/4/16 8:46:04
  18. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; che

    一般出现此类异常是sql语句出现语法错误 学习过程中遇到的问题 SQL语句预先编译到了pstat对象中,调用时不需要SQL语句 PreparedStatement与Statement区别...

    2024/4/26 19:29:16
  19. HIT-软件构造lab2

    软件构造lab2报告-1180300527朱明喆1 实验目标概述2 实验环境配置3 实验过程3.1 Poetic Walks3.1.1Get the code and prepare Git repository3.1.2Problem 1: Test Graph 3.1.3Problem 2: Implement Graph 3.1.3.1Implement ConcreteEdgesGraph3.1.3.2Implement ConcreteVertic…...

    2024/4/1 1:37:14
  20. Java生成不重复的随机数

    package self.exercise;import java.util.Arrays;public class NoRepeatRandomNumber {public static void main(String[] args) {getNotNumber1();getNotNumber2();}public static void getNotNumber1(){//1. 声明整型数组int[] numbers=new int[10];//2. 思路: 通过一个whil…...

    2024/4/16 8:46:34

最新文章

  1. NDK 基础(一)—— C 语言知识汇总

    1、数据类型 在 C 语言中&#xff0c;数据类型可以分为如下几类&#xff1a; 基本数据类型&#xff1a; 整数类型&#xff08;Integer Types&#xff09;&#xff1a;是算数类型&#xff0c;包括如下几种&#xff1a; int&#xff1a;用于表示整数数据&#xff0c;通常占用四个…...

    2024/4/28 0:12:02
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. MySql数据库从0-1学习-第三天多表设计学习

    项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: 一对多(多对一)多对多一对一 一对多 需求:根据需求,完成部门和员工表的设计 一对多,很多人会使用外键,…...

    2024/4/26 23:11:04
  4. 论文阅读AI工具链

    文献检索 可以利用智谱清言来生成合适的文献检索式&#xff0c;并根据需要不断调整。 谷歌学术 在Google Scholar中进行检索时&#xff0c;您可以使用类似的逻辑来构建您的搜索式&#xff0c;但是语法会有所不同。Google Scholar的搜索框接受普通的文本搜索&#xff0c;但是…...

    2024/4/23 6:25:51
  5. 设计之魅:高质量面向对象设计的秘密

    设计模式是在软件设计中用于解决常见问题的经过验证的解决方案。设计模式并不是代码或库&#xff0c;而是一种解决问题的思考方式。在使用设计模式时&#xff0c;需要考虑一些基本的设计原则&#xff0c;这些原则有助于构建灵活、可维护和可扩展的软件系统。以下是一些常见的设…...

    2024/4/25 23:31:47
  6. 【外汇早评】美通胀数据走低,美元调整

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

    2024/4/26 18:09:39
  7. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/4/26 20:12:18
  8. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/4/27 4:00:35
  10. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

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

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

    2024/4/26 21:56:58
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/4/27 9:01:45
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

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

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

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

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

    2024/4/25 18:39:16
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

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

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

    2024/4/26 22:01:59
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

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

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

    2024/4/25 18:39:00
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/4/27 11:43:08
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/27 8:32:30
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

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

    2022/11/19 21:17:18
  27. 错误使用 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,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
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  45. 如何在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