1. Set集合是String类型的无序集合。集合中的成员是唯一的, 这就意味着集合中不能出现重复的数据, 根据集合内成员的唯一性, 第二次插入的相同成员将被忽略。Set是通过哈希表实现的, 所以添加、删除、查找的复杂度都是O(1)。集合中最大的成员数为

redis aof 重写 redis set重复key_redis aof 重写

(4294967295, 每个集合可存储40多亿个成员)。

2. 向集合添加一个或多个成员

2.1. 语法: sadd key member1 [member2]。

2.2. sadd命令将一个或多个成员加入到集合中, 已经存在于集合的成员将被忽略。假如集合key不存在, 则创建一个包含所有成员的集合。当给定key不是集合类型时, 返回一个错误。

2.3. 返回被添加到集合中的新成员的数量, 不包括被忽略的成员。

2.4. 实例

redis aof 重写 redis set重复key_集合类型_02

3. 返回集合中的所有成员

3.1. 语法: smembers key。

3.2. smembers命令返回集合中的所有成员。不存在的给定key集合被视为空集合。

3.3. 返回集合中的所有成员。

3.4. 实例

redis aof 重写 redis set重复key_集合类型_03

4. 获取集合的成员数

4.1. 语法: scard key。

4.2. scard命令返回集合中的成员数量。

4.3. 返回集合的成员数量。当集合key不存在时, 返回0。

4.4. 实例

redis aof 重写 redis set重复key_redis aof 重写_04

5. 判断成员是否是集合的成员

5.1. 语法: sismember key member。

5.2. sismember命令判断成员是否是集合的成员。

5.3. 如果成员是集合的成员, 返回1。如果成员不是集合的成员或key不存在, 返回0。

5.4. 实例

redis aof 重写 redis set重复key_redis aof 重写_05

6. 返回第一个集合与其他集合之间的差异

6.1. 语法: sdiff key1 [key2]。

6.2. sdiff命令返回第一个集合与其他集合之间的差异, 也可以认为说第一个集合中独有的成员。不存在的集合key将视为空集。差集的结果来自前面的first_key, 而不是后面的other_key1, 也不是整个first_key other_key1..other_keyn的差集。

6.3. 返回包含差集的成员列表。

6.4. 实例

redis aof 重写 redis set重复key_并集_06

7. 第一个集合与其他集合之间的差异存储在destination集合

7.1. 语法: sdiffstore destination key1 [key2]。

7.2. sdiffstore命令将第一个集合与其他集合之间的差异存储在destination集合中。如果指定的destination这个集合已存在, 则清空它的成员, 添加新成员。

7.3. 返回储存差集的集合的成员数量。

7.4. 实例

redis aof 重写 redis set重复key_redis aof 重写_07

8. 返回所有给定集合的交集

8.1. 语法: sinter key1 [key2]。

8.2. sinter命令返回所有给定集合的交集。不存在的集合key被视为空集。当给定集合当中有一个空集时, 结果也为空集(根据集合运算定律)。

8.3. 返回包含交集的成员列表。

8.4. 实例

redis aof 重写 redis set重复key_redis aof 重写_08

9. 所有给定集合的交集存储在destination集合

9.1. 语法: sinterstore destination key1 [key2]。

9.2. sinterstore命令将所有给定集合的交集存储在指定的集合中。如果指定的集合已经存在, 则清空它的成员, 添加新成员。

9.3. 返回存储交集的集合的成员数量。

9.4. 实例

redis aof 重写 redis set重复key_复杂度_09

10. 返回所有给定集合的并集

10.1. 语法: sunion key1 [key2]。

10.2. sunion命令返回所有给定集合的并集。不存在的集合key被视为空集。

10.3. 返回包含并集的成员列表。

10.4. 实例

redis aof 重写 redis set重复key_并集_10

11. 所有给定集合的并集存储在destination集合中

11.1. 语法: sunionstore destination key1 [key2]。

11.2. sunionstore命令将所有给定集合的并集存储在指定的集合destination中。如果 destination已经存在,则清空它的成员, 添加新成员。

11.3. 返回存储并集的集合的成员数量。

11.4. 实例

redis aof 重写 redis set重复key_集合类型_11

12. 移除集合中一个或多个成员

12.1. 语法: srem key member1 [member2]。

12.2. srem命令用于移除集合中的一个或多个成员, 不存在的成员会被忽略。当key不是集合类型, 返回一个错误。

12.3. 返回被成功移除的成员的数量, 不包括被忽略的成员。

12.4. 实例

redis aof 重写 redis set重复key_并集_12

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. 实例

redis aof 重写 redis set重复key_集合类型_13