1. Set集合是String类型的无序集合。集合中的成员是唯一的, 这就意味着集合中不能出现重复的数据, 根据集合内成员的唯一性, 第二次插入的相同成员将被忽略。Set是通过哈希表实现的, 所以添加、删除、查找的复杂度都是O(1)。集合中最大的成员数为
(4294967295, 每个集合可存储40多亿个成员)。
2. 向集合添加一个或多个成员
2.1. 语法: sadd key member1 [member2]。
2.2. sadd命令将一个或多个成员加入到集合中, 已经存在于集合的成员将被忽略。假如集合key不存在, 则创建一个包含所有成员的集合。当给定key不是集合类型时, 返回一个错误。
2.3. 返回被添加到集合中的新成员的数量, 不包括被忽略的成员。
2.4. 实例
3. 返回集合中的所有成员
3.1. 语法: smembers key。
3.2. smembers命令返回集合中的所有成员。不存在的给定key集合被视为空集合。
3.3. 返回集合中的所有成员。
3.4. 实例
4. 获取集合的成员数
4.1. 语法: scard key。
4.2. scard命令返回集合中的成员数量。
4.3. 返回集合的成员数量。当集合key不存在时, 返回0。
4.4. 实例
5. 判断成员是否是集合的成员
5.1. 语法: sismember key member。
5.2. sismember命令判断成员是否是集合的成员。
5.3. 如果成员是集合的成员, 返回1。如果成员不是集合的成员或key不存在, 返回0。
5.4. 实例
6. 返回第一个集合与其他集合之间的差异
6.1. 语法: sdiff key1 [key2]。
6.2. sdiff命令返回第一个集合与其他集合之间的差异, 也可以认为说第一个集合中独有的成员。不存在的集合key将视为空集。差集的结果来自前面的first_key, 而不是后面的other_key1, 也不是整个first_key other_key1..other_keyn的差集。
6.3. 返回包含差集的成员列表。
6.4. 实例
7. 将第一个集合与其他集合之间的差异存储在destination集合中
7.1. 语法: sdiffstore destination key1 [key2]。
7.2. sdiffstore命令将第一个集合与其他集合之间的差异存储在destination集合中。如果指定的destination这个集合已存在, 则清空它的成员, 添加新成员。
7.3. 返回储存差集的集合的成员数量。
7.4. 实例
8. 返回所有给定集合的交集
8.1. 语法: sinter key1 [key2]。
8.2. sinter命令返回所有给定集合的交集。不存在的集合key被视为空集。当给定集合当中有一个空集时, 结果也为空集(根据集合运算定律)。
8.3. 返回包含交集的成员列表。
8.4. 实例
9. 将所有给定集合的交集存储在destination集合中
9.1. 语法: sinterstore destination key1 [key2]。
9.2. sinterstore命令将所有给定集合的交集存储在指定的集合中。如果指定的集合已经存在, 则清空它的成员, 添加新成员。
9.3. 返回存储交集的集合的成员数量。
9.4. 实例
10. 返回所有给定集合的并集
10.1. 语法: sunion key1 [key2]。
10.2. sunion命令返回所有给定集合的并集。不存在的集合key被视为空集。
10.3. 返回包含并集的成员列表。
10.4. 实例
11. 将所有给定集合的并集存储在destination集合中
11.1. 语法: sunionstore destination key1 [key2]。
11.2. sunionstore命令将所有给定集合的并集存储在指定的集合destination中。如果 destination已经存在,则清空它的成员, 添加新成员。
11.3. 返回存储并集的集合的成员数量。
11.4. 实例
12. 移除集合中一个或多个成员
12.1. 语法: srem key member1 [member2]。
12.2. srem命令用于移除集合中的一个或多个成员, 不存在的成员会被忽略。当key不是集合类型, 返回一个错误。
12.3. 返回被成功移除的成员的数量, 不包括被忽略的成员。
12.4. 实例
13. 将成员从source集合移动到destination集合中
13.1. 语法: smove source destination member。
13.2. smove命令将指定成员member从source集合移动到destination集合中。如果source集合不存在或不包含指定的member成员, 则smove命令不执行任何操作, 仅返回0。否则, member成员从source集合中被移除, 并添加到destination集合中, 返回1。当destination集合已经包含member成员时, smove命令只是简单地将source集合中的member成员删除, 此时也返回1。当source或destination不是集合类型时, 返回一个错误。
13.3. 如果成员被成功移除, 返回1。如果成员不是source集合的成员, 那么返回0。
13.4. 实例