Redis命令:List和Set

一、List命令:
在java中,list有两大类,数组ArrayList和链表LinkedList:

(1)、数组:优点:根据索引取值,速度极快,不会因为数据量变大,速度降低;
                      缺点:数组的元素增删,效率极低(数据量越大,效率越低)

(2)双向链表:优点:链表的元素增删效率极高(增删速度与数据量大小无关)
                          缺点:根据索引取值,效率极低(数据量越大,效率越低)

在Redis中,list选取的是链表,原因:因为在redis操作中,更多的操作是进行元素的增删。
1、取值:lrang key start end:获取链表中从start到end的元素的值,start、end从0开始计数;也可以为负数,若为负-1,则表示链表尾部的元素,-2则表示倒数第2个元素,以此类推。

例:list1[d,c,b,a]
①lrange list1 0 3 输出:d c b a

②lrange list1 0 -1 输出同上
③lrange list1 1 2 输出:c b

2、赋值:
(1)lpush key values[value1 value2 value3 ...] 在指定的key所关联的list头部插入所有的values,如果该key不存在,该命令在插入之前创建一个该key关联的空链表,之后再向该链表头部插入数据,插入成功返回元素的个数;
(2)rpush key values[value1 value2 ...] 在该list的尾部添加元素

例:向集合list1和list2中分别添加元素a b c d
①lpush list1 a b c d

而存入list1中的数据是list1[d c b a]
②rpush list2 a b c d

而存入的数据是list2[a b c d]
3、删除:

(1)lpop key:返回并弹出指定的key关联的链表中的第一个元素,即头部元素,如果该key不存在,返回nil,若key不存在,返回头元素;
(2)rpop key:从尾部删除

例:集合list1[a,b,c,d]
lpop list1 返回a 集合为[b,c,d]

rpop list1 返回d 集合为i[b,c]
4、扩展命令:

(1)llen key返回指定的key关联的链表中的元素的数量
(2)lrem key count value 删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素;如果count小于0,则从尾向头遍历并删除;如果count等于0,则删除链表中所有等于value的元素。

(3)lset key index value 通过索引替换元素( 效率低),设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。操作链表的脚标不存在则抛出异常。
(4)linsert key before | after pirot value在pivot元素前或后插入value这个元素。

(5)rpoplpush resource destination 将链表中的尾部元素弹出,并添加到头部【循环操作】

二、Set命令:

在redis中,我们可以将set类型看做 无序的字符集合,可包含 最大元素数量为4294967295个,和list不同的是,set中 不允许出现重复的元素
1、赋值:sadd key values[value value ...]向set集合中添加数据,如果该key的值已经有了,则不会重复添加。

2、删除:srem key member[member member...] 删除set集合中指定的成员,若无该元素,返回0,不会实际操作。
3、取值:①smembers key 获取set中所有元素

               ②sismember key member 判断参数中指定的=成员是否在该set中,1表示存在,0表示不存在 或该key本身就不存在。
4、差集运算:sdiff key1 key2 ...返回key1与key2中相差的成员

5、交集运算:sinter key1 key2 key3...

6、并集运算:sunion key1 key2...

7、扩展命令:

①scard key 获取set中成员的数量
②srandmember key随机返回set集合中的一个成员

③sdiffstore destination key1 key2 将key1 key2相差的成员存储在destination上
④sinterstore destination key [key ...] 交集存在destnation上

⑤sunionstore destination key[key ...]并集存在destnation上

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值