redis的5种数据结构及操作命令


程序是用来存储数据的,数据库是用来存储数据的,程序处理完的数据要存储到数据库中,不同特点的数据要存储在redis中不同的数据结构中。

1:字符串:单key:单value

操作命令:
1):将string类型的数据设置到redis中:set 键 值(如果key已经存在会把以前的key覆盖掉)
set zsname zhangsan
2)get 键
get zsname
3)追加字符串:append key value:如果key不存在则新建一个key,并且把value设置成value
set phone 11111
4)获取字符串长度:strlen key
5)将字符串数值进行加一运算:incr key(如果key不存在首先设置一个key,初始化为0,再进行加一运算)要求key表示的key所表示的value必须是个数值否则报错。
在这里插入图片描述
6)对字符串数值进行减一运算:decr key
在这里插入图片描述
7)将字符串数值进行加一offset运算:incrby key offset
incrby zsage 10
在这里插入图片描述
8)对字符串数值进行减一offset运算:decrby key offset
在这里插入图片描述
9)获取字符串中的子字符串getrange key startIndex endIndex
getrange zsname 2 6
字符串中的每一个下标也可以是负数,自右向左,从-1开始

在这里插入图片描述
在这里插入图片描述
10)value覆盖下标为startIndex开始的字符串setrange key startIndex value(能覆盖几个字符就覆盖几个)
在这里插入图片描述
11)设置字符串数据的同时设置他的最大生命周期:setex key seconds value
在这里插入图片描述
12)setnx key value:设置string类型的数据value到redis数据库中,当key不存在时设置成功否则放弃设置
13)批量将string类型的数据设置到redis中:mset 键1 值1 键2 值2
14)批量从redis中获取string类型的数据:mget 键1 键2 键3…
15)msetnx批量设置字符串到redis中,当key都不存在时设置成功,只要有一个已经存在则全部放弃设置
msetnx 键1 键2…

2:list列表:单key:多有序value:这个有序指的是放里面顺序是啥他的顺序就是啥样,有顺序可重复

1)将一个或者多个值一次插入到列表表头(左侧):lpush key value[value value…]
lpush list01 1 2 3
在这里插入图片描述

2)获取指定列表中 指定下标区间的的元素:lrange key startIndex endIndex
3)将一个或者多个值一次插入到列表的表尾:rpush key value[value,value…]
rpush list02 a b c
rpush list02 d e
在这里插入图片描述
4) 从指定列表中移除并返回表头元素:lpop key
lpop list02
在这里插入图片描述
5)获取列表中指定下标的元素:lindex key index
在这里插入图片描述
6)获取指定列表的长度:llen key
llen list02
在这里插入图片描述
7)从指定列表中移除并且返回表尾元素:rpop key
在这里插入图片描述
8)根据count的值移除列表中某一些数据:lrem key count value
a.如果count>0从左边开始删除count个跟calue相等的数据
b.如果count<0从列表右侧删除count个跟calue相等的数据
c.如果count=0从列表中移除所有跟value相等的数据
在这里插入图片描述
9)截取指定列表中指定下标区间的元素组成新的列表并赋值给key:ltrim key startIndex endIndex
在这里插入图片描述
10)将指定列表中指定下标的元素设置为指定值
lset list04 1 10
11)将value插入到指定列表中位于pivot元素之前/之后的位置: linsert key before/after pivot value在这里插入图片描述

3:set集合:单key:多无序value,不能重复,通过业务数据直接操作

 1)将一个或者多个元素(如果元素已经存在则会忽略)添加到集合中,返回成功加入的元素个数:sadd ey value [value value....]
 sadd set01 a b a  c
 2)获取指定集合中所有的元素:smember key

在这里插入图片描述
3)判断指定元素在集合中是否存在:sismember key member
存在返回1,不存在返回0

在这里插入图片描述
4)获取指定集合的长度:scard key
在这里插入图片描述
5)移除指定集合中一个或者多个元素:srem key member [member,member…]
不存在的元素会被忽略,返回成功移除的个数
6)随机获取指定集合中的一个或者多个元素:srandmember key [count]
count>0:随机获取的多个元素之间不能重复
count<0:随机获取的多个元素之间可能重复
在这里插入图片描述
7)从指定集合中随机移除一个或者多个元素
:spop key[count]
在这里插入图片描述
8)将指定集合中指定元素移送到另一个元素:smove source dest member
在这里插入图片描述
9)获取一个集合中有,但是其他集合中没有的元素:sdiff key key…
10)获取所有指定集合中都有的元素组成的新集合:sinter
11)获取所有指定集合中所有的元素组成的大集合:sunion key key…

4:pojo(实体类)单key:对象(属性:值)

1)将一个或者多个field-value 对设置到哈希表中:hset key field value,
2)获取哈希表中指定field的值:hget key field
在这里插入图片描述
3)批量将多个field-value对设置到哈希表中:hmset key1 value1 …
4)批量获取指定哈希表中的field的值:hmget key field[field2…]
5)获取指定哈希表中所有的field和value:gettall key
在这里插入图片描述
6)从指定哈希表中删除一个或者多个field:hdel key field1 field2…
7)获取指定哈希表中所有的field个数:hlen key
在这里插入图片描述
8)判断指定哈希表中是否存在某一个field:hexists key field
9获取指定哈希表中所有的field列表:hkeys key
10)获取指定哈希表中的所有value列表:hvals key
11)对指定哈希表中的field值进行加法运算:hincrby key field int
在这里插入图片描述
12)对指定哈希表中指定field值进行进行浮点数加法运算:hincrbyfloat key field float
13)将一个field-value对设置到哈希表中如果key-value已经存在放弃设置,hsetnx key fiels value
在这里插入图片描述

5:zset:单key:多有序value:他这个有序不是你放进去是啥样就是啥样有一定的规则,不能重复。

zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序
1)将一个或者多个member及其score值加入有序集合:zadd key score memeber[score member…]
如果元素已经存在则把分数覆盖
2)获取指定有序集合中指定下标区间的元素:zrange key startIndex endIndex【withscores】
在这里插入图片描述
3)获取指定有序集合中指定分数区间的元素 :zrangebyscore key min max
在这里插入图片描述
4)删除有序集合中一个或者多个元素:zrem key member[member…]
在这里插入图片描述
5)获取指定有序集合中所有元素的个数:zcard key
6)获取指定集合中指定元素的排名:zrank key member
7)获取指定集合中分数在指定区间内的元素的个数:zcount key min max
8)获取指定集合中指定元素的分数:zscore key member
9)获取指定集合中指定元素的排名:zrevrank key member(从大到小排)
10)

6:key的操作指令从0开始:

1: 查看数据库中的key:keys pattern
*:匹配0个或者多个字符
?:匹配一个字符
[ ]:匹配[]里面的一个字符,里面有一个相同的字符就可以匹配
keys :查看数据库中所有的key
keys k
:查看数据库中所有以k开头的key
在这里插入图片描述
2:判断key在数据库中是否存在:exists key 如果存在返回1,如果不存在返回0
在这里插入图片描述
exists key1 key2…判断多个key是否存在
在这里插入图片描述
3:移动指定的key到指定的数据库实例:move key index,
在这里插入图片描述
4:查看指定key的剩余时间:ttl key
如果没有设置生存时间,返回-1
如果key不存在,返回-2
在这里插入图片描述
5:设置key的最大生成时间:expire key seconds
在这里插入图片描述
6:查看指定key的数据类型:type
在这里插入图片描述
7:重命名key:rename key newkey
在这里插入图片描述

扫描二维码关注公众号,回复: 11660219 查看本文章

8:删除key:Del key…删除指定的key,返回值是世纪删掉的key的数量
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42678668/article/details/107934552
今日推荐