Redis学习总结(三)cnfinch

Redis列表(List)

就像Java中的LinkedList一样,一个key中可以存放多个value。另外,它是一个字符串链表,也就是说,他对头尾两端插入删除的操作效率很高,但是对中间位置的元素操作效率就很低了,因为链表需要逐个搜索找到对应元素。

lpush [key] [value1][value2][…]
rpush [key] [value1][value2][…]
lrange [key] [begin] [end] (如果end是-1则是全部选中)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如图所示,lpush和rpush都是往一个list里面添加数据,但是存储的顺序是相反的。
list就好像一根中空的管子,如果是lpush的话,那么就从左边往右边塞数据,读取数据的时候就从左往右读取;如果是rpush的话,就是从右边往左边开始填数据,自然第一个加进去的1就是在第一个位置。

lpop [key]
rpop [key]
在这里插入图片描述

同理,lpop是从左边移出一个数据,rpop是从右边移出一个数据。(存放顺序假设第一个数据是在最左边)

lindex [key] [index]
在这里插入图片描述
在这里插入图片描述
如图,按索引搜索,下标从0开始。

llen [key] (输出list的长度)
在这里插入图片描述

lrem [key] [num] [value]
在list中,删除num个value。
例:lrem list2 1 1
这条语句的意思是,在k1中删除1个【1】。
在这里插入图片描述

ltrim [key] [begin] [end]
截取key中,begin到end的数据,并覆盖key原来的值。
在这里插入图片描述

rpoplpush [key1] [key2]
在这里插入图片描述
如图,从key1中,在最右边弹出一个值加到key2的最左边。

lset [key] [begin] [end]
在这里插入图片描述
相当于string中的set方法,lset可以设置(修改)list中某一个位置的值。
linsert [key] before/after [tag] [value]
在这里插入图片描述
如图,在key中,在元素【x】之前加入【java】。也可以选择使用after,加在所给元素的后面。

Redis集合(Set)

这个Set如同Java的Set一样,不允许重复的元素。
sadd [key] [value1][value2][…]
smembers [key]
在这里插入图片描述
如图,若加入了同样的元素,只会存入一个。
smembers是显示该key的值,不需要写入范围。
sismembers [key] [value]
在这里插入图片描述
查看某value是否存在于所给的key中,存在返回1,不存在返回0。

srem [key] [value]
与lrem类似,在key中删除一个value。因为set中不会有两个相同的value,所以不需要写删除数量。

spop [key]
从给定的key中随机弹出一个值。

srandmember [key] [num]
从给定的key中随机返回一个值。但是不像spop,srandmember不会影响key的值。

scard [key]
与llen类似,返回key的长度。

smove [key1] [key2] [value]
与rpoplpush类似,但set需要指定value。

sdiff [key1] [key2]
求key1和key2的差集,返回的key1中有但key2没有的值,可能会有多个或者没有。

sinter [key1] [key2]
求key1和key2的交集,返回的key1中有且key2也有的值,可能会有多个或者没有。

sunion [key1] [key2]
求key1和key2的并集,返回并集的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值