redis中value类型为set的一些常用命令
首先还是看帮助,先简单的看一下set分组下的命令:
之前说了list,现在说set,两者的区别:list是有序的,并且可重复;set无序,去重。
一.sadd/srem:添加/删除元素
添加元素的时候,是有重复数据的,但是set会去重,smembers 显示全部的元素
srem 删除元素,返回的是成功删除的元素个数,因为没有元素7,所以只删除了元素1和元素4
二.sinter:返回两个set集合的交集
这里还有一个延伸的命令sinterstore,将交集的结果存入另外一个set集合内。好处:减少数据的移动,数据没有进入IO。
三.sdiff:两个集合的差集,需要主要参数的顺序。
四.spop:删除并返回一个或多个随机元素
五.srandmember:返回一个或多个随机元素
需要主要的是这个 count可以赋值为正数、负数、0
当count>0时:在尽量满足个数要求的前提下,返回一个不含重复数据的集合
当count<0时:一定满足个数要求,但是返回的集合内包含重复数据
当count=0时:什么都不返回
看一下例子,myset2合集内的元素为4、5、6、7、8、9
当count>0时,返回的集合如下
当count<0时,如下图:
当count=0时,如下图: