(一)Redis的基本类型
String,List,Set,Hash,Zset
 三种特殊类型:geospatial(地理空间数据)、hyperloglog[基数估算(去重计数)]、bitmaps(位图)
 
 
 
2.常用的redis-key的命令
(1)keys *
 #查看所有的key
 (2)set name Lisa
 #设置key
 (3)keys *
 #查询所有的key
 (4)Exists name
 #判断当前的key 是否存在
 (5)move name 1
 #redis的数据库总共有0-15,这个命令是把默认数据库0的name数据移动到1号数据库中
 (6)get name
 #查询name的具体值
 (7)Expire name 10
 #设置key的过期时间,单位是秒
 (8)ttl name
 #查看当前key的剩余时间
 (9)type name
 #查看当前key的一个类型
 (10)ping
 #连通redis的服务器
 其他命令去官网查询
 (11)flushdb
 清空当前数据库中的所有键值对。
 (12)flushall
 清空 Redis 中所有数据库的所有数据。
3.String字符串类型详解
(1)ser key1 v1
 #设置值
 (2)get key1
 #获取值
 (3)keys *
 #获得所有的key
 (4)EXISTS key1
 #判断某一个key是否存在
 (5)APPEND key1 ”hello“
 #追加字符串,如果当前key不存在,就相当于setkey
 (6)get key1
 (7)STRLEN key1
 #获取字符串的长度
 (8)APPEND key1,”Lisa“
 (9)STRLEN key1
 (10)步长命令
 set views 0 #初始浏览量为0
 get views
 incr views #自增1,浏览量变为1
 incr views
 get views
 decr views #自减1,浏览量减1
 INCRBY views 10 #可以设置步长,指定增量
 DECRBY views 5 #可以设置步长,指定减量
 (11)字符串范围
 set key1 ”hello,Lisa"
 #设置key1的值
get key1
GETRANGE key1 0 3
 #截取字符串[0,3],输出”hell”
GETRANGE key1 0 -1
 #获取全部的字符串,和get key的命令一样,输出”hello,Lisa"
#比如微信文章的阅读量和在看量
(12)字符串替换
 set key2 abcdefg
get key2
 #输出”abcdefg“
SETRANGE key2 1 xx
 #替换指定位置开始的字符串
get key2
 #”axxdefg“
 (13)
 #setex(set with expire):设置过期时间
 #setnx(set if not exist):不存在设置(分布式锁中常常会使用)
 setex key3 30 ”hello“
 #设置key3的值为hello,30秒后过期
ttl key3
 #查询key3的剩余时间
setnx mykey ”redis"
 #如果mykey不存在,创建mykey,返回1(创建成功)
keys *
setnx mykey ”monggoDB“
 #如果mykey存在,创建失败,返回0(创建失败)
get mykey
 #redis

(14)mset同时设置多个值,mget同时get多个值。
 mset k1 v1 k2 v2 k3 v3
 #同时设置多个值
keys *
 #1)"k1” 2)"k2” 3)“k3”
mget k1 k2 k3
 #同时获取多个值,会返回1)"v1” 2)"v2” 3)“v3”
msetnx k1 v1 k4 v4
 #msetnx是一个原子性操作,同成功同失败

 (15)对象
 getset:先get后set
getset db redis #如果不存在值,则返回null
 #nil
get db
 #“redis"
getset db mongodb #如果存在值,获取原来的值,并设置新的值
 #“redis"
getdb
 ”mongodb“
补充:CAS是乐观锁,无锁操作,轻量级的锁。先比较再交换。
 
 



















![uni-app vue3版本打包h5后 页面跳转报错(uni[e] is not a function)](https://i-blog.csdnimg.cn/direct/6db7b23fb3874b3abd4e6296486b02ed.png)

