redis集合间的操作(SDIFF SINTER SUNION)

Redis的集合以无序的方式存储多个各不相同的元素,用户可以快速地向集合添加元素,或者从集合里面删除元素,也可以对多个集合进行集合运算操作,比如计算并集,交集和差集。

1.元素操作

--添加元素

SADD key element [element . . .]            e.g.  SADD setA 1 2 3

--移除元素

SREM key element [element . . .]            e.g.   srem setA 1 2

--检查给定元素是否存在于集合

SISMEMBER key element   存在返回1,不存在返回0;    e.g. SISMEMBER setA 2

--返回集合的大小

SCARD key            e.g. scard  setA

--返回集合包含的所有元素    (如果集合的基数较大,执行该命令可能造成服务器阻塞,有更好的迭代集合中元素的方法)

smembers key      e.g. smembers setA

--从集合里面随机弹出一个元素   弹出后从集合中移除了该元素

spop key        e.g. spop setA

--从集合里面随机地返回元素  与spop不同,srandmember不会移除被返回的元素

srandmember key [count]  e.g. srandmember setA 5

如果没有给定可选的count,那么命令随机地返回集合中的一个元素。

如果给定了count参数,那么:

    当count为正数,且少于集合基数时。返回一个包含count个元素的数组,若count大于集合基数,则返回整个集合。

    当count为负数,返回一个数组,数组中元素可能重复出现,且数组的长度为count的绝对值。

 

SDIFF:差集;SINTER:交集;SUNION:并集

SADD setA 1 2 3 

SADD setB 2 3  4

SADD setC 3 4  5

求集合A-B的差集

SDIFF setA setB     =1

也可以操作多个集合

SDIFF setA setB  setC    =1

求集合A n B的交集

SINTER setA setB  = 2 3

求集合A n B的并集

SUNION setA setB = 1 2 3 4 

组合命令:sdiffstore    sinterstore    sunionstore 将返回的集合存储到key中、

e.g.   sdiffstore key [key . . . ]

你可能感兴趣的:(redis集合间的操作(SDIFF SINTER SUNION))