redis中value类型为set的一些常用命令

首先还是看帮助,先简单的看一下set分组下的命令:

redis中value类型为set的一些常用命令

之前说了list,现在说set,两者的区别:list是有序的,并且可重复;set无序,去重。

一.sadd/srem:添加/删除元素

redis中value类型为set的一些常用命令

添加元素的时候,是有重复数据的,但是set会去重,smembers 显示全部的元素

redis中value类型为set的一些常用命令

srem 删除元素,返回的是成功删除的元素个数,因为没有元素7,所以只删除了元素1和元素4

redis中value类型为set的一些常用命令

二.sinter:返回两个set集合的交集

redis中value类型为set的一些常用命令

redis中value类型为set的一些常用命令

这里还有一个延伸的命令sinterstore,将交集的结果存入另外一个set集合内。好处:减少数据的移动,数据没有进入IO。

redis中value类型为set的一些常用命令

redis中value类型为set的一些常用命令

三.sdiff:两个集合的差集,需要主要参数的顺序。

redis中value类型为set的一些常用命令

redis中value类型为set的一些常用命令

四.spop:删除并返回一个或多个随机元素

redis中value类型为set的一些常用命令

redis中value类型为set的一些常用命令

五.srandmember:返回一个或多个随机元素

redis中value类型为set的一些常用命令

需要主要的是这个 count可以赋值为正数、负数、0

当count>0时:在尽量满足个数要求的前提下,返回一个不含重复数据的集合

当count<0时:一定满足个数要求,但是返回的集合内包含重复数据

当count=0时:什么都不返回

看一下例子,myset2合集内的元素为4、5、6、7、8、9

redis中value类型为set的一些常用命令

当count>0时,返回的集合如下

redis中value类型为set的一些常用命令

当count<0时,如下图:

redis中value类型为set的一些常用命令

当count=0时,如下图:

redis中value类型为set的一些常用命令