Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
sadd key value [value2] [value3] #向一个集合添加一个成员或者多个成员
scard key #获取集合的成员数
sdiff key1 key2 [key3] 返回第一个集合与其他集合之间的差异,也可以认为说第一个集合中独有的元素。不存在的集合 key 将视为空集。
sdiffstore destination key1 key2 [key3] #返回第一个集合与其他集合之间的差异,并且将差集存储到destination集合中,如果指定的集合destination已经存在则覆盖。
sinter key1 key2 [key3] #返回交集,不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
sinterstore destination key1 key2 [key3] #返回交集并且存储到destination集合中,如果指定的集合destination已经存在则覆盖。
sismenber key member #判断成员是否存在于指定集合中,存在返回1不存在返回0
smove key destination member
Redis Smove 命令将指定成员 member 元素从 key 集合移动到 destination 集合。
SMOVE 是原子性操作。
如果 key 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 key 集合中被移除,并添加到 destination 集合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 key 集合中的 member 元素删除。
当 key 或 destination 不是集合类型时,返回一个错误。
spop key [count] #随机移除并且返回成员,key不存在或者是空集返回nil
srandmember key [count] #随意返回成员但不移除
srem key member [member2] #移除成员,成功返回1,不成功返回0
sunion key1 key2 [key3] #返回并集
sunionstore destination key1 key2 [key3] #返回并集并且赋值给destination,如果指定的集合destination已经存在则覆盖。
smembers key #返回集合所有成员
SSCAN key cursor [MATCH pattern] [COUNT count]
cursor - 游标。
pattern - 匹配的模式。
count - 指定从数据集里返回多少元素,默认值为 10 。
例子:sscan myset1 0 match h* 10
获取交集可以用来整到共同关注的场景
差集可以用来整可能认识的人或者可能感兴趣的话题等