Redis(三):Redis数据类型与常用命令

Redis(三):Redis数据类型与常用命令

本文整理的内容主要是:
1、Redis的五大数据类型解释
2、Redis键(key)
3、String
4、List
5、Set
6、Hash
7、Zset(sorted set)

注:五大数据类型的常用命令

一、Redis的五大数据类型解释

  1. String

String是redis最基本的类型,一个key对应一个value,一个redis中字符串value最多可以是512M

  1. List

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。它的底层实际是个链表

  1. Set

Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

  1. Hash

Redis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表,类似Java里面的Map<String,Object>

  1. Zset

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

二、Redis键(key)

常用命令

  • 查看当前库的所有key
keys *

在这里插入图片描述

  • 判断某个key是否存在
exists key名字

在这里插入图片描述

  • 移动key到其他库
//key:为移动key的名字
//db:数据库的号数(0-15)
move key db  

在这里插入图片描述

  • 为给定的key设置过期时间(当key存在的时候才行)
//key是key的名字
expire key

在这里插入图片描述

  • 查看key过期时间
ttl key名字
  • 查看key是什么类型
type key

在这里插入图片描述

三、String(单值单value)

1、设置key
set key vale
2、获取key的值
get key
3、删除key
del key
4、在key原本的value后面添加value2
append key value2
5、获取key的长度
strlen key
6、当value为数字时,value+1操作
incr user
7、当value为数字时,value-1操作
decr user
8、当value为数字时,value+x操作,(x为加的数字)
incrby user x
9、当value为数字时,value-x操作,(x为减的数字)
decrby user x
10、获取key的value全部值
getrange key 0 -1
11、获取key的value的0-x部分值
getrange key 0 x
12、将key对应的value的index及之后的值替换成v(替换的位数为v的位数)
setrange key 3 v  //假设最初的值为aabbcc   替换之后的值为 aabvcc
13、设置值的时候设置过期时间
setex key 10 value
14、设置key的值,只有当key不存在的时候才会成功,否则返回0
setnx key value
15、同时设置多个值
mset k1 v1 k2 v2 k3 v3
16、同时获取多个值
mget k1 k2
17、批量设置值的时候,如果有值已经存在,那就会返回0(就是全部不成功)
msetnx k1 v1 k2 v2
18、替换掉key的value的值,再返回原来的旧值
getset key value

四、List(单值多value)

1、添加一个key为list01的集合(先进后出,详情看3)
lpush list01 1 2 3 4 5
2、添加一个key为list02的集合(先进先出,详情看3)
rpush list02 1 2 3 4 5
3、获取集合的值(这里可以看出1 2的区别)
lrange list01 0 -1 //出来的结果为:5 4 3 2 1
lrange list02 0 -1 //出来的结果为: 1 2 3 4 5
4、取出集合的头部(取出之后值就不在了)
lpop list01 //5
5、取出集合的尾部(取出之后值就不在了)
rpop list01 //1
6、按照索引下表获取元素
lindex list02 2 //3
7、输出集合的长度
llen list 02 //5
8、删除N个value (list03  1 2 3 2 2 3 3 4 4 5 5)
lrem list03 2 2 //结果 : 1 3 2 3 3 4 4 5 5 (删除key为list03的2个2)
9、截取指定范围的值再复制给key(list03  1 2 3 2 2 3 3 4 4 5 5)
ltrim key 0 3 //list03:1 2 3 2
10、将某个列表的尾添加到另一个列表的头(list01 1 2 3   list02 4 5 6)
rpoplpush list02 list01 //list01 6 1 2 3  list02 4 5
11、替换index的值为v(list01 1 2 3 4)
lset list01 1 x //list01: 1 x 3 4 

五、Set(单值多value)

1、添加
sadd set01 1 1 2 3 4 5
2、获取
smembers set01   //1 2 3 4 5
3、判断某个元素是否再这个集合里面(在 返回1 否则返回0)
sismember set01 1
4、获取集合中的元素个数
scard set01
5、删除集合中的元素
srem set01 2 //set01 1 3 4 5
6、随机取出set01集合中的n个数
srandmember set01 2 //表述随机取出两个数
7、随机出栈
spop set01
8、将set01(1 2 3)中的某个值赋给set02(x y z)
smove set01 set02 2 //set02 x y z 2
9、数学集合类
//set01 1 2 3 4 5
//set02 1 2 3 d b
//差集
sdiff set01 set02 // 返回的结果 : 4 5
//交集
sinter set01 set02 //返回的结果 :1 2 3
//并集
sunion set01 set02 //返回的结果 :1 2 3 4 5 d b

六、Hash(kv模式不变,但v是一个键值对)

1、添加一个
hset user name xx
2、获取
hget user name
3、添加多个
hmset user name xx age 18 sex 90.5
4、获取多个
hmget user name age sex
5、获取key中的所有key和value
hgetall user //name xx age 18 sex 90.5
6、删除key对应的value
hdel user name//name以及对应的值就没有了
7、输出key的长度
hlen user
8、判断某个value是否存在 存在返回1 不存在返回0
hexists user name
9、获取key中的所有key
hkeys user
10、获取所有的values
hvals user
11、操作数字累加
hincrby user age 1 //执行一次19 执行两次20 ....
12、操作小数累加
hincrbyfloat user sex 0.5 //执行一次91 执行两次91.5 ....
13、添加的时候,没有该key值才能添加成功
hsetnx user name yy //不成功返回0  成功返回1

七、Zset(在set的基础上加上了一个score值)

1、添加
zadd zset01 60 v1 70 v2 80 v3 90 v4 //60和v1是绑在一起的
2、获取
zrange zset01 0 -1 //v1 v2 v3 v4
3、获取(带分数)
zrange zset01 0 -1 withscores
4、返回分数范围内的值
zrangebyscore zset01 60 90//出来的结果:v1 v2 v3 v4
5、返回分数范围内的值(带分数)
zrangebyscore zset01 60 90 withscores //出来的结果:60 v1 70 v2 80 v3 90 v4
6、返回分数范围内的值(不包含)
zrangebyscore zset01 (60 (90//出来的结果:v2 v3
7、返回分数范围内的值(带返回限制)
//取出分数段为60 90 ,然后从下标为2开始取2个
//limit 开始下标步 多少步
zrangebyscore zset01 60 90 limit 2 2//出来的结果:v3 v4
8、删除某个score下对应的value
zrem zset01 90 //删除分数为90的元素
9、获取存储个数
zcard zset01
10、某个分数区间的存储个数
zcount zset01 60 80
11、获取该分数值对应得下标
zrank zset01 70 //返回下标
12、通过value值得到分数
zscore set01 v1 //返回v1对应得分数
13、逆序获取下标值
//先将其倒序,完了再获取下标
zrevrank zset01 80
14、倒序
zrevrange zset01 0 -1 // v4 v3 v2 v1  最开始为 v1 v2 v3 v4

下一篇:Redis(四):Redis配置文件

发布了15 篇原创文章 · 获赞 5 · 访问量 5402

猜你喜欢

转载自blog.csdn.net/weixin_43718192/article/details/103851472