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 . . . ]