Redis数据结构类型介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41507845/article/details/79034837
-------------------------------------------Redis数据结构类型-------------------------------------------------------------------
一、string类型
1.设置值
set key value (如果key存在:key的类型是string,那么对值进行覆盖;key的类型不是string,报错;如果key不存在,会创建key并赋值value)


2.获取值
get key (如果key存在,key的类型不是string会报错,是string类型的返回对应的值;如果key不存在返回nil)


3.删除值
del key


4.数值增减
递增、递减(key必须是数字的,key不存在,创建一个key并赋默认值0,然后进行递增、递减)
递增:incr key
递减:decr key


增减指定数值
增:incrby key count
减:decrby key count


字符串拼接
append key value


二、hash类型(它被string类型+json数据格式所取代)
1.设置值
设置单个值
hset key filed value
设置多个值
hmset key filed1 value1 filed2 value2 ……


2.获取值
获取单个值
hget key filed
获取多个值
hmget key filed1 filed2……
获取所有值
hgetall key


3.删除值
删除指定属性值
hdel key filed
删除所有
del key




三、list类型
1.设置值:
从左侧添加数据:
lpush key value1 value2 value3 ……
执行指令:lpush mylist a b c d
结果:d c b a


0 1 2 3 4 5 6 7
d c b a


从右侧添加数据:
rpush key value1 value2 value3 ……
执行指令:rpush mylist 1 2 3 4
结果:d c b a 1 2 3 4

-8 -7 -6 -5 -4 -3 -2 -1
0 1 2 3 4 5 6 7
d c b a 1 2 3 4




2.获取值:
lrange key startIndex endIndex
执行指令:
lrange mylist 0 7
结果:d c b a 1 2 3 4


获取所有的数据:lrange key 0 -1




3.删除值:
从左侧删除值:(key存在,删除最左侧的一个元素;不存在返回nil)
lpop key


从右侧删除值:(key存在,删除最右侧的一个元素;不存在返回nil)
rpop key


删除所有:
del key


4.扩展指令:
lpushx key value  (一次只能从左侧添加一个数据,key存在才能添加成功)
rpushx key value  (一次只能从右侧添加一个数据,key存在才能添加成功)

lrem key count value (删除指定个数<count>的元素value)
初始化数据:
rpush mylist a b c d 1 2 3 a c d 1 c 2 a b 1 2


执行指令:(从左侧删除2个c)
lrem mylist 2 c
结果;
a b d 1 2 3 a d 1 c 2 a b 1 2


再次执行指令:(从右侧删除2个1)
lrem mylist -2 1
结果:
a b d 1 2 3 a d c 2 a b 2

再次执行指令:
lrem mylist 0 a
结果:
b d 1 2 3 d c 2 b 2




lset key index value(将制定索引位置index的元素替换为value)
初始化数据:b d 1 2 3 d c 2 b 2
执行指令:
lset mylist 3 k
结果:
b d 1 k 3 d c 2 b 2


linsert key before|after pivot value (在pivot的前面或者后面插入元素value)
初始化数据:b d 1 k 3 d c 2 b 2
执行指令:
linsert mylist before d m
结果:
b m d 1 k 3 d c 2 b 2


rpoplpush key1 key2 (将key1右侧的元素删除,添加到key2的左侧)
初始化数据:
mylist a b c d 1 2 3 4
mylist1 
执行指令:
rpoplpush mylist mylist1
结果:
mylist: a b c d 1 2 3
mylist1:4

四、set类型
1.设置值
sadd key value1 vlaue2 value3……
执行指令:
sadd myset a b c d 1 a c
结果:
a b c d 1 


2.获取值                  
smemebers key
执行指令:
smembers myset
结果:
a b c d 1


3.删除值:
删除指定的元素:
srem key value1 value2……
执行指令:
srem myset 1
结果:
a b c d


删除所有:
del key


4.判断某个元素是否存在
sismemebr key value
执行指令:
sismember myset a  结果:1
sismember myset k  结果:0


5.聚合操作_差集
sdiff key1 key2
初始化数据:
myset: a b 1 2
myset1: a c 1 3
执行指令:
sdiff myset myset1  结果:2 b
sdiff myset1 myset  结果:3 c


规律:最终显示(key1中存在,但是不在key2中存在的数据)




6.聚合操作_交集
sinter key1 key2
初始化数据:
myset: a b 1 2
myset1: a c 1 3
执行指令:
sinter myset myset1  结果:1 a
sinter myset1 myset  结果:1 a


规律:最终显示(key1和key2都有的数据)




7.聚合操作_并集
sunion key1 key2
初始化数据:
myset: a b 1 2
myset1: a c 1 3
执行指令:
sunion myset myset1  结果:a b c 1 2 3
sunion myset1 myset  结果:a b c 1 2 3


规律:最终显示(key1+key2-重复元素   )


五、sortedset类型
1.设置值(member1、member2、member3不允许重复;score1、score2、score3可以重复)
zadd key score1 member1 score2 member2 score3 member3 ……
执行指令:
zadd mysort 30 zhangan 24 lisi  35 wagnwu  76 zhaoliu
结果:
lisi zhagnsan wangwu zhaoliu




2.获取值
获取指定成员的分数
zscore key member
执行指令:
zscore mysort zhaoliu
结果:
76


获取所有成员的个数
zcard key
执行指令:
zcard mysort
结果:
4


获取指定的成员(范围)默认是按照分数从低到高
zrange key startIndex endIndex [withscores]
执行指令:
zrange mysort 0 -1
结果:
lisi zhagnsan wangwu zhaoliu


从高到低
zrevrange key startIndex endIndex [withscores]            
执行指令:
zrevrange mysort 0 -1
结果:
zhaoliu wangwu zhangsan lisi


3.删除值
删除指定的成员
zrem key member1 member2 ……


删除所有
del key


4.扩展指令
zremrangebyrank key startIndex endIndex(按照分数从低到高排序,然后删除指定位置的数据)
初始化数据:(显示:30 zhangsan 44 lisi 56 zhaoliu 65 wangwu 79 fenjiu 87 tianqi 98 houba)
zadd mysort 30 zhangsan 44 lisi 65 wangwu 56 zhaoliu 87 tianqi 98 houba 79 fenjiu
执行指令:
zremrangebyrank mysort 2 4
结果:
zhangsan lisi tianqi houba




zremrangebyscore key min max(删除指定分数之间的数据,包括指定的分数)
初始化数据:(显示:30 zhangsan 44 lisi 56 zhaoliu 65 wangwu 79 fenjiu 87 tianqi 98 houba)
zadd mysort 30 zhangsan 44 lisi 65 wangwu 56 zhaoliu 87 tianqi 98 houba 79 fenjiu
执行指令:
zremrangebyscore mysort 48 87
结果:
zhangsan lisi houba


zrangebyscore key min max [withscores] [limit offset count]
返回分数在[min,max]的成员并按照分数从低到高排序


初始化数据:(显示:30 zhangsan 44 lisi 56 zhaoliu 65 wangwu 79 fenjiu 87 tianqi 98 houba)
zadd mysort 30 zhangsan 44 lisi 65 wangwu 56 zhaoliu 87 tianqi 98 houba 79 fenjiu
执行指令:
zrangebyscore mysort 44 88 withscores limit 2 2  【获取44到88之间从索引号为2的位置的2个元素】
结果:
wangwu fenjiu

猜你喜欢

转载自blog.csdn.net/qq_41507845/article/details/79034837