Redis五大基本类型

注:笔记整理来源 B站UP主狂神说Java

官方文档:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets),
有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial)
索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU
eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过
Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。 String(字符串)

String

127.0.0.1:6379> flushdb
OK
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 "hello"     追加字符串,若key不存在,相当于set key
(integer) 7
127.0.0.1:6379> get kye1
(nil)
127.0.0.1:6379> strlen key1    获取key的长度
(integer) 7
127.0.0.1:6379> append key1 ",kuangshen"
(integer) 17
127.0.0.1:6379> strlen key1
(integer) 17
127.0.0.1:6379> get key1
"v1hello,kuangshen"127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views  自动增长
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> decr views  自动递减
(integer) 1
127.0.0.1:6379> get views
"1"
127.0.0.1:6379> incrby views 10  以步长为10进行增长
(integer) 11
127.0.0.1:6379> get views
"11"
127.0.0.1:6379> decrby views 8  以步长为8进行递减
(integer) 3
127.0.0.1:6379> get views
"3"127.0.0.1:6379> set key1 "hello,fly"
OK
127.0.0.1:6379> get key1
"hello,fly"
127.0.0.1:6379> getrange key1 0 4   字符串截取
"hello"
127.0.0.1:6379> getrange key1 0 -1
"hello,fly"127.0.0.1:6379> setex key3 30 "hello"   设置过期时间
OK
127.0.0.1:6379> ttl key3
(integer) 26
127.0.0.1:6379> get key3
(nil)
127.0.0.1:6379> ttl key3
(integer) -2127.0.0.1:6379> setnx mykey redis   mykey不存在,设置成功
(integer) 1                    设置成功返回1,失败返回0
127.0.0.1:6379> keys *
1) "key2"
2) "key1"
3) "mykey"
127.0.0.1:6379> setnx mykey mongodb  mykey存在,设置失败
(integer) 0
127.0.0.1:6379> get mykey
"redis"127.0.0.1:6379> mset key1 v1 key2 v2 key3 v3    设置多个值
OK
127.0.0.1:6379> keys *
1) "key2"
2) "key1"
3) "key3"
127.0.0.1:6379> mget key1 key2 key3   获取多个值
1) "v1"
2) "v2"
3) "v3"
msetnx key1 v1 key4 v4
(integer) 0127.0.0.1:6379> getset db redis          如果不存在,则返回nil
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongodb     如果存在,先返回当前的值,再将其设置为新值
"redis"
127.0.0.1:6379> get db
"mongodb"与CAS结构是相通的

拓展:
-----------
对象:
set user:1{name:zhangsan,age:3} 设置一个user:1 对象 值为json字符串来保存一个对象
这里的key是一个巧妙的设计: user:{id}:{filed} 如此设计在redis是完全ok的

127.0.0.1:6379> mset user:1:name zhangsan user:1:age 17
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "17"

String类似的使用场景:
value除了是字符串,也可以是数字
-计数器
-统计多单位的数量{uid:9282329:follow 0} 可以inc uid:9282329:follow
-----------

List (基本的数据类型)

在redis里,可以将redis 玩成,栈,队列,阻塞队列等.所有的list命令都是 l开头的


LPUSH RPUSH

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
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1
1) "three"
2) "two"
127.0.0.1:6379> rpush list 1    将一个或多个值放入列表的尾部
(integer) 7
127.0.0.1:6379> rpush list 2
(integer) 8
127.0.0.1:6379> rpush list 3
(integer) 9
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "1"
5) "2"
6) "3"

LPOP RPOP

127.0.0.1:6379> rpop list  从后面移除一个
"3"
127.0.0.1:6379> lpop list  从前面移除一个
"three"

Lindex

127.0.0.1:6379> lindex list 1   获取index位置的值
"one"

Llen

127.0.0.1:6379> Llen list
(integer) 7

移除指定的值:Lrem

127.0.0.1:6379> lrem list 1 one   移除 1个 "one"
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "3"
3) "2"
4) "1"
5) "1"
6) "2"

ltrim  修剪:list

 127.0.0.1:6379> lpush mylist hello1
(integer) 1
127.0.0.1:6379> lpush mylist hello2
(integer) 2
127.0.0.1:6379> lpush mylist hello3
(integer) 3
127.0.0.1:6379> ltrim mylist 1 2
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello2"
2) "hello1"

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

127.0.0.1:6379> lrange mylist 0 -1
1) "hello2"
2) "hello1"
127.0.0.1:6379> rpoplpush mylist myotherlist
"hello1"
127.0.0.1:6379> lrange mylist 0 -1
1) "hello2"
127.0.0.1:6379> lrange myotherlist 0 -1
1) "hello1"

LSET 指定下标更新值

127.0.0.1:6379> lset mylist 0 "hello3"
OK

linsert 往指定位置前或后面插入value值

127.0.0.1:6379> linsert mylist before(after) hello3 "other"
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "other"
2) "hello3"

小结:
list其实是一个链表,before Node after, left ,right都可以插入值
如果key不存在,则创建新的链表
key存在,新增内容
如果移除了key,为空链表,则不存在
在两边插入,或者改动值,效率最高! 操作中间元素效率偏低
消息排队!消息队列(Lpush Rpop) 栈(Lpush lpop)

Set(集合)

set中的值不能重复

Sadd ,Smember , SisMember

127.0.0.1:6379> sadd myset "hello"   set集合添加元素
(integer) 1
127.0.0.1:6379> sadd myset "fly"
(integer) 1
127.0.0.1:6379> sadd myset "love fly"
(integer) 1
127.0.0.1:6379> SMEMBERS myset     查看指定set的所有值
1) "love fly"
2) "hello"
3) "fly"
127.0.0.1:6379> SISMEMBER myset hi     查看set是否包含该元素,有返回1 ,没有返回0
(integer) 0
127.0.0.1:6379> SISMEMBER myset hello
(integer) 1

Scard

127.0.0.1:6379> scard myset    获取set集合的中的个数
(integer) 3

Srem

127.0.0.1:6379> srem myset hello  移除set的元素
(integer) 1

Set无序,不重复集合,抽随机

127.0.0.1:6379> SRANDMEMBER myset    随机抽出一个元素
"love fly"
127.0.0.1:6379> SRANDMEMBER myset
"love fly"
127.0.0.1:6379> SRANDMEMBER myset
"love fly"
127.0.0.1:6379> SRANDMEMBER myset
"love fly"
127.0.0.1:6379> SRANDMEMBER myset
"fly"
127.0.0.1:6379> SRANDMEMBER myset 2   随机抽出指定个数的元素
1) "love fly"
2) "fly"

Spop 删除指定的key,随即删除key!

 127.0.0.1:6379> SPOP myset    随机删除set集合中的一些元素
"fly"

Smove  将一个指定的值移动到另一个集合中

127.0.0.1:6379> smove myset newset fly   如果没有目标集合,会删除第一个集合的元素,不会创建目标集合
(integer) 0
127.0.0.1:6379> SMEMBERS newset
(empty array)
127.0.0.1:6379> SMEMBERS myset
1) "love fly"

Set集合场景:
微博,B站,共同关注(交集)
微博:A用户将所有关注的人放在一个set集合中!将粉丝也放在集合中
A用户和B用户的共同关注,共同爱好,二度好友(推荐好友)
数字集合类:
差集

127.0.0.1:6379> sadd key a
(integer) 1
127.0.0.1:6379> sadd key b
(integer) 1
127.0.0.1:6379> sadd key c
(integer) 1
127.0.0.1:6379> sadd key1 d
(integer) 1
127.0.0.1:6379> sadd key1 c
(integer) 1
127.0.0.1:6379> sadd key1 e
(integer) 1
127.0.0.1:6379> SDIFF key key1   求差集
1) "b"
2) "a"-交集
127.0.0.1:6379> SINTER key key1  求交集
1) "c"-并集
127.0.0.1:6379> SUNION key key1
1) "b"
2) "c"
3) "d"
4) "a"
5) "e"

Hash(哈希,Map集合)

存储的是key - map !  value值为map集合
Hash本质和String 没有太大区别,还是一个key-value.只不过value值为 map(key-value)!

127.0.0.1:6379> hset myhash field fly   设置key-map值
(integer) 1
127.0.0.1:6379> hget myhash field   获取key-map值
"fly"
127.0.0.1:6379> hmset myhash field fly field hello 设置多个key-map值,重复设置会覆盖掉
OK
127.0.0.1:6379> hget myhash field 
"hello"
127.0.0.1:6379> hmget myhash field field1 获取多个key-map值
1) "fly"
2) "hello"
127.0.0.1:6379> hgetall myhash  获取所有值
1) "field"     field-fly  属于一个key-value 
2) "fly"
3) "field1"
4) "hello"
127.0.0.1:6379> hdel myhash field1   删除指定的一个value值
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field"
2) "fly"
127.0.0.1:6379> hmset myhash field1 1 field2 2
OK
127.0.0.1:6379> hlen myhash      获取长度
(integer) 3
127.0.0.1:6379> hexists myhash field    判断字段是否存
(integer) 1
127.0.0.1:6379> hkeys myhash  只获取key值
1) "field"
2) "field1"
3) "field2"
127.0.0.1:6379> hvals myhash  只获取value值
1) "fly"
2) "1"
3) "2"
127.0.0.1:6379> hincrby myhash field1 10 以指定步长增长 
(integer) 11
127.0.0.1:6379> hincrby myhash field1 -1 以指定步长减少(值为负值,就是递减) 
(integer) 10
127.0.0.1:6379> hgetall myhash
1) "field"
2) "fly"
3) "field1"
4) "11"
5) "field2"
6) "2"
127.0.0.1:6379> hsetnx myhash field f  如果存在,则设置失败,不存在则创建(分布式锁:成功version+1)
(integer) 0

hash存储变更的数据:
user name age,尤其是用户信息的保存,经常变动的信息
hash更适合对象的存储,String更适合字符串存储

Zset(有序集合:Sort Set)

在set的基础上增加了一个值,set k1 v1 zset k1 score1 v1

添加值 zadd key score(根据score排序) value

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

排序 ZrangeByScore key min(最小值) max(最大值) withsocres(显示socre)

127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf withscores  从小到大排序
1) "gou"
2) "2000"
3) "fly"
4) "2500"
5) "lei"
6) "2600"

Zrevrange key start stop 从大到小排序

127.0.0.1:6379> zrevrange salary 0 -1
1) "lei"
2) "gou"

移除元素 Zrem

127.0.0.1:6379> zrem salary fly
(integer) 1
查看元素个数 Zcard
127.0.0.1:6379> zcard salary
(integer) 2

查询score在指定区间的数量 Zcount key min max

127.0.0.1:6379> zcount salary 0 2700
(integer) 2

应用场景:

如果工作中需要,可以查询官方文档!
*********************
set排序,可以存储班级成绩表,工资表排序,
普通消息(1),重要消息(2)
排行榜应用,TOP N测试
*********************

三种特殊数据类型

geospatial (地图,地理位置)

朋友的定位,附近的人,打车距离实现
redis的Geo  可以推算地理位置的信息(两地之间的距离,方圆几里的人)
可以查询一些测试数据
主要有6个命令:

GEOADD(添加地理位置) geoadd key longitude(经度) latitude(纬度) member
规则:地球两级(南北极)没办法添加,一般会下载城市数据,通过java程序读取文件导入
参数:key(经度,纬度,名称)
有效的经度 -85.05到85.05
有效的纬度 -180到 180

127.0.0.1:6379> geoadd china:city 116.40 39.30 beijing
(integer) 1
127.0.0.1:6379> geoadd china:city 121.47 31.32 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqing
(integer) 1
127.0.0.1:6379> geoadd china:city 114.08 22.54 shenzhen
(integer) 1
127.0.0.1:6379> geoadd china:city 120.15 30.28 hangzhou
(integer) 1
127.0.0.1:6379> geoadd china:city 108.94 34.26 xian
(integer) 1

GEODIST(Geo distince:获取给定两个位置之间的距离)
单位: 
-m 单位米
-km 单位千米
-mi 单位英里
-ft 单位千尺

127.0.0.1:6379> geodist china:city beijing shanghai   北京到上海的直线距离 m
"1008342.6601"
127.0.0.1:6379> geodist china:city beijing shanghai km   北京到上海的直线距离 km
"1008.3427"
127.0.0.1:6379> geodist china:city beijing chongqing km  北京到重庆的距离 km
"1414.4224"

GEOHASH(返回一个或者多个位置的GeoHash表示)

127.0.0.1:6379> GEOHASH china:city beijing
1) "wwfz8drghe0"       代表当前城市经纬度的字符串11位的hash,如果两个字符串越接近,那么距离就越近GEOPOS(获取指定地理位置的经度和纬度)
127.0.0.1:6379> geopos china:city xian
1) 1) "108.93999785184860229"
2) "34.25999964418929977"
127.0.0.1:6379> geopos china:city beijing
1) 1) "116.39999896287918091"
2) "39.30000117660147652"
127.0.0.1:6379> geopos china:city chongqing
1) 1) "106.49999767541885376"
2) "29.52999957900659211"
127.0.0.1:6379> geopos china:city shenzhen
1) 1) "114.08000081777572632"
2) "22.53999903789756587"
127.0.0.1:6379> geopos china:city hangzhou
1) 1) "120.15000075101852417"
2) "30.2800007575645509"
127.0.0.1:6379> 

GEORADIUS(以给定的经纬度为中心,找出某一半径内的元素)
微信找好友 附近的人?(获取附近的人的地址,定位) 通过半径来查询!

127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km 以110 30为中心,半径1000km内的
1) "chongqing"
2) "shenzhen"
3) "hangzhou"
获取指定数量的人 200人
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord withdist count 1 获取1人
1) 1) "chongqing"
2) "341.9374"
3) 1) "106.49999767541885376"
2) "29.52999957900659211"

所有的数据都应录入 china:city中,才会使结果更加精确

GEORADIUSBYMEMBER(找出指定范围内的元素,中心点由给定的位置元素决定) 城市间的定位(导航)

127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km
1) "beijing"
2) "xian"
127.0.0.1:6379> GEORADIUSBYMEMBER china:city shanghai 400 km
1) "hangzhou"
2) "shanghai"

GEO底层的实现原理就是Zset!
127.0.0.1:6379> type china:city
zset
就可以使用Zset命令来操作Geo

127.0.0.1:6379> zrange china:city 0 -1   查看地图全部元素
1) "chongqing"
2) "xian"
3) "shenzhen"
4) "hangzhou"
5) "shanghai"
6) "beijing"
127.0.0.1:6379> zrem china:city shenzhen  删除指定地图元素
(integer) 1
127.0.0.1:6379> zrange china:city 0 -1
1) "chongqing"
2) "xian"
3) "hangzhou"
4) "shanghai"
5) "beijing"

**

hyperloglog

什么是基数?
A{1,3,5,7,5,9}
B{1,3,5,7,8}
基数(不重复的元素) = 5 简介 redis2.8.9版本就更新了Hyperloglog数据结构! Redis Hyperloglog 基数统计的算法!
优点:占用的内存是固定的 2^64不同元素非技术,只需要12KB内存.从内存角度出发,hyperloglog为首选 网页的UV(Uniqe
Visitor:独立访客数 一个人访问一个网站多次,还是算作一个人)

传统的方式:set 保存用户的id,然后统计set中的元素数量作为标准判断
这个方式如果保存大量的用户id,占用内存过多,就会很麻烦!目的是为了计数,而不是保存id
0.81%的错误率! 统计UV的任务是可以忽略不计

测试使用

127.0.0.1:6379> pfadd mykey a b c d e f g h i j  创建第一组元素集
(integer) 1
127.0.0.1:6379> pfcount mykey  统计第一组元素基数数量
(integer) 10
127.0.0.1:6379> pfadd mykey2 i j z x c v b n m
(integer) 1
127.0.0.1:6379> pfcount mykey2
(integer) 9
127.0.0.1:6379> PFMERGE mykey3 mykey2 mykey 合并两组 mykey + mykey2 ->mykey3 
OK
127.0.0.1:6379> pfcount mykey3
(integer) 15

应用场景

进行页面统计
如果允许容错,一定可以使用Hyperloglog
不允许容错,就是用set或者自己的数据类型即可!

bitmap(位图)

位存储:都是操作二进制位来进行记录,非0即1 统计疫情感染人数: 0 0 0 0 0 1 1 0 (1为感染者) 统计用户信息,
活跃人数或者不活跃人数. 
登录或者未登录 学生365打卡. 365天=365bit 1字节=8bit 46个字节就可以存储(节省内存)
只要是有两个状态的,都可以使用bitmap(位图)

使用bitmaps记录周一到周日的打卡  setbit key offest value
周一:1 周二:1 周三:0 …

127.0.0.1:6379> setbit sign 0 1
(integer) 0
127.0.0.1:6379> setbit sign 1 1
(integer) 0
127.0.0.1:6379> setbit sign 2 0
(integer) 0
127.0.0.1:6379> setbit sign 3 0
(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 1
(integer) 0

查看某一天是否有打卡 getbit key offest

127.0.0.1:6379> getbit sign 1
(integer) 1
127.0.0.1:6379> getbit sign 3
(integer) 0
统计打卡的天数     bitcount key [start end]
127.0.0.1:6379> bitcount sign 0 6
(integer) 5

Redis事务操作

什么是事务:一组命令一起执行的集合.
一个事务中的所有命令都会被序列化,在事务执行的时候,按照顺序执行!一次性,顺序性.排他性
---------------队列 set set set 执行----------------

要么同时成功,要么同时失败,原子性
redis事务不保证原子性!!!
redis单条命令是保证原子性的!!!
redis事务没有隔离级别概念!(不会出现幻读,脏读,不可重复读...)
所有的命令在事务中,并没有直接被执行!只有发起执行命令时,才会执行!

redis的事务:
-开启事务(multi)
-命令入队()
-执行事务(exec)

正常执行事务:

127.0.0.1:6379> multi  开启事务
OK
127.0.0.1:6379> set key1 v1
QUEUED
127.0.0.1:6379> set key2 v2
QUEUED
127.0.0.1:6379> set key3 v3
QUEUED
127.0.0.1:6379> get key2
QUEUED
127.0.0.1:6379> get key1
QUEUED
127.0.0.1:6379> exec   执行事务
1) OK
2) OK
3) OK
4) "v2"
5) "v1"
127.0.0.1:6379> multi  开启事务
OK
127.0.0.1:6379> set key1 v1
QUEUED
127.0.0.1:6379> set key2 v2
QUEUED
127.0.0.1:6379> set key4 v4
QUEUED
127.0.0.1:6379> DISCARD  取消事务
OK
127.0.0.1:6379> get key4 事务队列中的命令不会被执行
(nil)

编译异常(redis命令有误):事务中所有的命令都不会被执行

127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k1 v1
QUEUED
127.0.0.1:6379> set k2 v2
QUEUED
127.0.0.1:6379> getset k3 v3
QUEUED
127.0.0.1:6379> getset k4
(error) ERR wrong number of arguments for 'getset' command
127.0.0.1:6379> set k5 v5
QUEUED
127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379> get v5   所有的命令都不会被执行
(nil) 

运行时异常(语法有误):事务存在语法问题,在执行的时候其他命令可以正常执行,
错误命令抛异常(所以无原子性)

127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k2 "v2"
QUEUED
127.0.0.1:6379> incr k2
QUEUED
127.0.0.1:6379> exec
1) OK
2) (error) ERR value is not an integer or out of range

锁:Redis可以实现乐观锁, watch 监控!
悲观锁:很悲观,认为什么时候都会出问题,无论做什么都会加锁!影响性能
乐观锁:很乐观,认为什么时候都不会出问题,所以不会加锁!在更新数据的时候判断,在此期间是否有人修改过数据
1.获取version
2.更新的时候比较version

Redis的监视测试  一旦事务执行成功,监控就会取消 
正常执行成功: 单线程

127.0.0.1:6379> set money 100
OK
127.0.0.1:6379> set out 0
OK
127.0.0.1:6379> watch money  监视money对象
OK
127.0.0.1:6379> multi  事务正常结束,数据期间没有发生变动
OK
127.0.0.1:6379> decrby money 20
QUEUED
127.0.0.1:6379> incrby out 20
QUEUED
127.0.0.1:6379> exec
1) (integer) 80
2) (integer) 20
127.0.0.1:6379> mget money out
1) "80"
2) "20"

多线程:多个客户端操作

127.0.0.1:6379> watch money
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> decrby money 10
QUEUED
127.0.0.1:6379> incrby out 10
QUEUED
//线程2进来修改了money
127.0.0.1:6379> get money
"80"
127.0.0.1:6379> set money 1000
OK
127.0.0.1:6379> exec  提交事务发现meney被修改了,就会失败
(nil)//事务执行失败需要先解锁,在获取最新的值
127.0.0.1:6379> unwatch  1.发现事务执行失败,先解锁
OK
127.0.0.1:6379> watch money 2.获取最新的值,再次监视,select version
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> decrby money 80
QUEUED
127.0.0.1:6379> incrby out 80
QUEUED
127.0.0.1:6379> exec   3.每次执行前,都要比对监视的值有没有发生变化
1) (integer) 920
2) (integer) 100

使用watch可以当做redis的乐观锁操作!

Jedis操作redis

使用java操作redis
什么是jedis ? 
是官方推荐的java连接开发工具! 使用java操作redis

第一步:

<dependencies
<!-- 导入jedis的包-->><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency><!--导入fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency>
</dependencies>

2.编码测试:
-连接数据库
-操作命令
-断开连接

public class TestPing {public static void main(String[] args) {//1.创建一个Jedis对象Jedis jedis = new Jedis("127.0.0.1",6379);//Jedis的所有命令都是之前学习redis的命令//操作String hash set ZSet list geo hyperloglog bitmapSystem.out.println(jedis.ping());}
}

java对五大数据类型操作常用的API

操作redis-keys

Jedis jedis = new Jedis("127.0.0.1", 6379);System.out.println("清空数据:"+jedis.flushDB());
System.out.println("判断某个值是否存在:"+jedis.exists("username"));
System.out.println("新增<username , fly>的键值对:"+jedis.set("username","fly"));
System.out.println("新增<password , 123>的键值对:"+jedis.set("password","123"));
System.out.print("系统的所有键如下:");
Set<String> keys = jedis.keys("*");
System.out.println("所有键:"+keys);
System.out.println("删除键password:"+jedis.del("password"));
System.out.println("判断键password是否存在:"+jedis.exists("password"));
System.out.println("查看username所存储的值类型:"+jedis.type("username"));
System.out.println("随机返回key空间的一个值:"+jedis.randomKey());
System.out.println("重命名key:"+jedis.rename("username","name"));
System.out.println("取出值:"+jedis.get("name"));
System.out.println("按索引查询:"+jedis.select(0));
System.out.println("删除当前数据库所有key值:"+jedis.flushDB());
System.out.println("返回当前数据库key值数目:"+jedis.dbSize());
System.out.println("删除所有数据库的key值:"+jedis.flushAll());

Sring:

Jedis jedis = new Jedis("127.0.0.1", 6379);jedis.flushDB();
System.out.println("----增加数据----");
System.out.println(jedis.set("key1","value1"));
System.out.println(jedis.set("key2","value2"));
System.out.println(jedis.set("key3","value3"));
System.out.println("删除key2:"+jedis.del("key2"));
System.out.println("获取key2:"+jedis.get("key2"));
System.out.println("修改key1的值:"+jedis.set("key1","afterV1"));
System.out.println("获取key1的值:"+jedis.get("key1"));
System.out.println("在key3后面加入值:"+jedis.append("key3",",hello"));
System.out.println("key3的值:"+jedis.get("key3"));
System.out.println("增加多个key-value值:"+jedis.mset("k1","v1","k2","v2","k3","v3"));
System.out.println("获取多个key-value值:"+jedis.mget("k1","key1","k2","k3"));
System.out.println("删除多个值:"+jedis.del("k1","k2"));
System.out.println("获取多个值:"+jedis.mget("username","name","k3"));jedis.flushDB();
System.out.println("----新增值防止覆盖----");
System.out.println(jedis.setnx("key1","value1"));
System.out.println(jedis.setnx("key2","value2"));
System.out.println(jedis.setnx("key2","value2-new"));
System.out.println(jedis.get("key1"));
System.out.println(jedis.get("key2"));System.out.println("---新增值并设置有效时间---");
System.out.println(jedis.setex("key3",10,"倒计时"));
System.out.println(jedis.get("key3"));
try {Thread.sleep(10000);
} catch (InterruptedException e) {e.printStackTrace();
}
System.out.println(jedis.get("key3"));System.out.println("---获取原值,更新为新值---");
System.out.println(jedis.getSet("key1", "newkey1"));
System.out.println(jedis.get("key1"));System.out.println("获取key2的字符串:"+jedis.getrange("key2",2,4));
System.out.println("删除所有数据库的key值:"+jedis.flushAll());

List:

Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
System.out.println("添加list元素:"+jedis.lpush("Collection","List","Map","Vector"));
System.out.println("添加list元素:"+jedis.lpush("Collection","HashMap"));
System.out.println("添加list元素:"+jedis.lpush("Collection","TreeSet"));
System.out.println("Collection的内容(全部):"+jedis.lrange("Collection",0,-1));
System.out.println("Collection的内容[0,3]:"+jedis.lrange("Collection",0,3));
System.out.println("-----删除列表指定的值-----");
System.out.println("删除指定元素个数:"+jedis.lrem("Collection",2,"HashMap"));
System.out.println("删除下表[0,3]区间内的值:"+jedis.ltrim("Collection",0,3));
System.out.println("从列表左边出栈:"+jedis.lpop("Collection"));
System.out.println("从列表右边添加值:"+jedis.rpush("Collection","iterator"));
System.out.println("从列表右端出栈:"+jedis.rpop("Collection"));
System.out.println("获取指定下标的内容:"+jedis.lindex("Collection",2));
System.out.println("修改Collection下标为1的值"+jedis.lset("Collection",1,"ArrayList"));
System.out.println("------------------------");
System.out.println("Collection的长度:"+jedis.llen("Collection"));
System.out.println("获取Collection下标为2的值:"+jedis.lindex("Collection",2));
System.out.println("------------------------");
System.out.println("SortList:"+jedis.lpush("sortList","3","6","1","2","7","4"));
System.out.println("sortList排序(从小到大)排序前:"+jedis.lrange("sortList",0,-1));
System.out.println("sortList排序(从小到大)排序后:"+jedis.sort("sortList"));

Set:

Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();System.out.println("往集合中添加元素------");
System.out.println(jedis.sadd("eleSet", "e1", "e2", "e3", "e4", "e5", "e6"));
System.out.println("Set中所有元素为:"+jedis.smembers("eleSet"));
System.out.println("删除一个元素e1:"+jedis.srem("eleSet","e1"));
System.out.println("Set中所有元素为:"+jedis.smembers("eleSet"));
System.out.println("删除2个元素e3,e4:"+jedis.srem("eleSet","e3","e4"));
System.out.println("Set中所有元素为:"+jedis.smembers("eleSet"));
System.out.println("随机移除集合中的一个元素:"+jedis.spop("eleSet"));
System.out.println("集合中的元素个数:"+jedis.scard("eleSet"));
System.out.println("e1是否存在集合中:"+jedis.sismember("eleSet","e1"));
System.out.println("e2是否存在集合中:"+jedis.sismember("eleSet","e2"));
System.out.println("---------------------");
System.out.println(jedis.sadd("eleSet1","e1","e2", "e3", "e4", "e5", "e6"));
System.out.println(jedis.sadd("eleSet2","e1","e0", "e9", "e6"));
System.out.println("删除eleSet1的e2,并移动到eleSet2中:"+jedis.smove("eleSet1","eleSet2","e2"));
System.out.println("eleSet1中的元素:"+jedis.smembers("eleSet1"));
System.out.println("eleSet2中的元素:"+jedis.smembers("eleSet2"));
System.out.println("----------集合运算--------");
System.out.println("eleSet1和eleSet2额交集:"+jedis.sinter("eleSet1","eleSet2"));
System.out.println("eleSet1和eleSet2额并集:"+jedis.sunion("eleSet1","eleSet2"));
System.out.println("eleSet1和eleSet2额差集:"+jedis.sdiff("eleSet1","eleSet2"));
jedis.sinterstore("eleSet3","eleSet1","eleSet2");
System.out.println("eleSet3的值:"+jedis.smembers("eleSet3"));

Hash:

Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
Map<String,String> map = new HashMap<String,String>();map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
map.put("key4","value4");
//添加名(key)为hash的hash元素jedis.hset("hash",map);
jedis.hset("hash","key5","value5");
System.out.println("hash所有键值对为:"+jedis.hgetAll("hash"));
System.out.println("hash的所有键为:"+jedis.hkeys("hash"));
System.out.println("hash的所有值为:"+jedis.hvals("hash"));
System.out.println("将key66保存的值加上一个整数,如果不存则创建key6:"+jedis.hincrBy("hash","key6",1));
System.out.println("hash所有键值对为:"+jedis.hgetAll("hash"));
System.out.println("删除一个或多个键值对:"+jedis.hdel("hash","key1","key6"));
System.out.println("hash所有键值对为:"+jedis.hgetAll("hash"));
System.out.println("hash所有键值对个数为:"+jedis.hlen("hash"));
System.out.println("判断hash是否存在key2:"+jedis.hexists("hash","key2"));
System.out.println("判断hash是否存在key3:"+jedis.hexists("hash","key3"));
System.out.println("获取hash中的值:"+jedis.hmget("hash","key3"));
System.out.println("获取hash中的值:"+jedis.hmget("hash","key3","key4"));
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 世上最污技术解读,你这么说我就懂了,收藏!

    假设你是一位女性,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。 假设你是一位女性,同时和两位男性在交往,两位都是你男朋友。并且他们还互不干涉,独立运行。这就是双机热备份。 …...

    2024/4/24 14:42:40
  2. linux阿里云ecs发邮件

    参考文档:- [文档1]https://blog.csdn.net/ithomer/article/details/83744621 另外这篇文档实践讲解也很详细- [文档2]https://blog.csdn.net/yongren_z/article/details/85119088- [文档3]http://devgou.com/article/Linux-Email/#%E6%94%B6%E5%8F%91%E9%82%AE%E4%BB%B6%E6%B…...

    2024/4/24 14:42:41
  3. 百度飞桨世界冠军带你从零实践强化学习第五天(三岁白话时间)

    百度飞桨从零实践强化学习第五天连续动作空间上求解RL连续动作 vs 离散动作DDPGPARL DDPG的代码解析总结大作业问题1AssertionError: the action should be in range [-1.0, 1.0]问题2 类库安装失败评论区小编认为不错的东西,分享分享 这里是三岁,这个课程最后一节大课啦,时…...

    2024/4/24 14:42:37
  4. 常用聚类算法

    在直观印象中,说起聚类算法,首先想到的k-means. k-means作为经典的聚类算法,应用范围很广,但是在运行前要指定聚类的数量n,这个值对于最终的计算结果有很大的影响.而现在也没有通用的方法来得到这个值. 本文介绍了包括k-means在内的多种聚类算法,可以在实际中灵活使用. 聚类常用…...

    2024/4/18 16:37:30
  5. jquery操作hidden属性和disabled属性

    https://www.jb51.net/article/45262.htm 移除$(#rp_Remark).removeAttr("hidden");设置$(#rp_Remark).prop("hidden", "hidden");disabled和hidden一样操作...

    2024/4/20 10:36:08
  6. 任何时候你都需要知道这个原理!你不会把商品数据都放内存吧!

    “ 今天分享学习关于计算机存储。说到存储,会想到以前的光盘,u盘,大点的机械硬盘,到现在更加普遍使用的固态硬盘。这些也算是IO设备了,说到IO,不得不想起很多时候系统的瓶颈会出现的IO上。这一篇和大家分享存储器的层次结构1 我们不凡先看看这几个价格 “ 1990~2020随着硬…...

    2024/4/16 15:48:45
  7. 2-100之间的素数(质数) 和升序

    for(int i=2;i<=100;i++){ boolean x=false; //标识 用来记录最初的状态 for(int j=2;j<=i/2;j++){ if(i%j= =0){ System.out.println(i+“不是素数”); x=true; //状态改变 所以不是素数 break; } } if(!x){ //x==false 可以换成 !x 结果都是true System.out.…...

    2024/4/28 2:30:13
  8. PHPExcel读取时间日期

    1. PHPEXCEL读取值的方式 $phpexcel->getCell(B . $row)->getValue();2. PHPEXCEL读取 日期 的方式 遇到日期,取出来的值和原本excel文件中的值格式不一样,是一串数字。 比如,excel中格式为这个样子的:取出来又是这个样子:$time = date(Y-m-d,PHPExcel_Shared_Date::E…...

    2024/4/24 14:42:36
  9. springboot项目配置yml中数据源后报错Unknown database user_information(已解决)

    目录springboot项目配置yml中数据源后报错Unknown database user_information问题现象:问题分析:springboot项目配置yml中数据源后报错Unknown database user_information问题现象:今天在用.yml配置了springboot项目的Mysql数据源后,出现了无法访问数据库的问题:报错如下: Unkn…...

    2024/4/24 14:42:35
  10. uTools:mybatisLog参数格式化插件

    ...

    2024/4/24 14:42:34
  11. SpringBoot集成Shiro(二)验证用户角色

    SpringBoot集成Shiro(一)验证用户登录验证 SpringBoot集成Shiro(三)验证用户权限 SpringBoot集成Shiro(四)验证用户角色升级版Shiro 这个安全认证框架已经帮我们做了很多事情,在一般情况下,我们完全可以将它当做一个黑盒来使用。 在上一篇文章中,我们通过 Shiro 完成了…...

    2024/4/26 13:33:36
  12. linux操作命令记录

    将本地文件复制到远程机器scp -r /opt/module/azkaban/exec-server/ root@172.16.7.333:/opt/module/azkaban/在远程机器上创建文件夹(路径不存在就创建)ssh 172.16.7.41 mkdir -p /opt/module/azkaban/exec-server...

    2024/4/24 14:42:35
  13. MySQL安装失败,如何完全卸载MySQL

    MySQL安装失败,再安装时,必须将之前安装的全部卸载干净,在可以进行下次安装。eg: 下面是具体步骤: 第一步:先去控制面板中,将MySQL卸载第二步:到安装目录下,将MySQL文件夹永久删除。默认安装目录在C盘Program Files下,如果安装时修改了安装目录,就去修改的目录下找。…...

    2024/4/24 14:42:36
  14. elementui+upload+VueCropper

    效果图npm install vue-cropper新建一个图片剪裁的组件 img-cropper<template><div class="vue-cropper-box"><div class="vue-cropper-operate"><button class="basicButton" @click="cropperChangeScale(1)"&g…...

    2024/4/24 14:42:30
  15. js代码执行步骤

    最近有个朋友去面试,面试中问到了js代码执行步骤的问题,这里记录下自己的理解大体上是两个步骤,1:预编译阶段,也就是变量提升阶段,把js代码中所有声明的变量提升到顶端2:执行阶段,运行写的执行代码,比如赋值操作,以及函数的执行,打印语句等例如这段代码的编译过程如…...

    2024/4/27 2:45:38
  16. Python (pycharm)用正则给字符串添加引号

    1.使用pycharm 用command+r 打开替换窗口。 2.选中.*(regex)如下图3.分别输入: (.+) ‘$1’, 结果如下:...

    2024/4/24 14:42:29
  17. 关于数组的一些题目

    package cn.kgc.kgc67; import java.util.Scanner; public class Demo05 { public static void main(String[] args) { /* int[] array = new int[50]; for (int i = 0; i < array.length; i++) { array[i] = 2 * i + 2; } //计算1-100之间的偶数 for (int a : array) { Sys…...

    2024/4/24 14:42:27
  18. js 实体对比方法

    目录概述实现代码调用方式结果 概述在我们提交修改时,总会想要判断实体中字段是否被修改.已减少对服务端的访问实现代码function compareEntity(opts){let result = {};opts.target = opts.target || {};opts.origin = opts.origin || {};if (Object.keys(opts.origin).length …...

    2024/4/24 14:42:33
  19. Zookeeper学习--Zookeeper基本使用和集群搭建

    Zookeeper学习–Zookeeper基本使用和集群搭建 本章记录学习Zookeeper的环境搭建以及基本api使用等。部分内容摘要自Zookeeper官网。本次使用的Zookeeper版本为3.4.9,这里我在本机上安装了VMWare,并创建了三台虚拟机,方便后面集群搭建。 文章目录Zookeeper学习--Zookeeper基本…...

    2024/4/24 14:42:25
  20. 谷粒商城—高可用集群

    1、K8s快速入门 1)简介 kubernetes简称k8s。是用于自动部署,扩展和管理容器化应用程序的开源系统。 中文官网:https://kubernetes.io/Zh/ 中文社区:https://www.kubernetes.org.cn/ 官方文档:https://kubernetes.io/zh/docs/home/ 社区文档:https://docs.kubernetes.org.…...

    2024/4/15 3:07:01

最新文章

  1. 基于springboot实现公司日常考勤系统项目【项目源码+论文说明】

    基于springboot实现公司日常考勤系统演示 摘要 目前社会当中主要特征就是对于信息的传播比较快和信息内容的安全问题&#xff0c;原本进行办公的类型都耗费了很多的资源、传播的速度也是相对较慢、准确性不高等许多的不足。这个系统就是运用计算机软件来完成对于企业当中出勤率…...

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

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

    2024/3/20 10:50:27
  3. [C++][算法基础]模拟队列(数组)

    实现一个队列&#xff0c;队列初始为空&#xff0c;支持四种操作&#xff1a; push x – 向队尾插入一个数 x&#xff1b;pop – 从队头弹出一个数&#xff1b;empty – 判断队列是否为空&#xff1b;query – 查询队头元素。 现在要对队列进行 M 个操作&#xff0c;其中的每…...

    2024/5/1 13:02:53
  4. 前端 js 经典:字符编码详解

    前言&#xff1a;计算机只能识别二进制&#xff0c;开发语言中数据类型还有数字&#xff0c;字母&#xff0c;中文&#xff0c;特殊符号等&#xff0c;都需要转化成二进制编码才能让技术机识别。 一. 编码方式 ACSLL、Unicode、utf-8、URL 编码、base64 等。 1. ACSLL 对英语…...

    2024/5/2 2:42:44
  5. 【外汇早评】美通胀数据走低,美元调整

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

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

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

    2024/5/2 16:16:39
  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/5/2 9:28:15
  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/5/2 15:04:34
  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/5/2 9:07:46
  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