SADD:将元素添加到集合

通过使用 SADD 命令,用户可以将一个或多个元素添加到集合里面:

  1. SADD set element [element ...]

这个命令会返回成功添加的新元素数量作为返回值。

以下代码展示了如何使用 SADD 命令去构建一个 databases 集合:

  1. redis> SADD databases "Redis"
  2. (integer) 1 -- 集合新添加了一个元素
  3.  
  4. redis> SADD databases "MongoDB" "CouchDB"
  5. (integer) 2 -- 集合新添加了两个元素
  6.  
  7. redis> SADD databases "MySQL" "PostgreSQL" "MS SQL" "Oracle"
  8. (integer) 4 -- 集合新添加了四个元素

图 5-2 展示了以上三个 SADD 命令构建出 databases 集合的整个过程。


图 5-2 使用 SADD 命令构建集合的整个过程

执行 SADD databases "Redis"_images/IMAGE_SADD_1.png执行 SADD databases "MongoDB" "CouchDB"_images/IMAGE_SADD_2.png执行 SADD databases "MySQL" "PostgreSQL" "MS SQL" "Oracle"_images/IMAGE_SADD_3.png

忽略已存在元素

因为集合不储存相同的元素,所以用户在使用 SADD 命令向集合里面添加元素的时候,SADD 命令会自动忽略已存在的元素,只将不存在于集合的新元素添加到集合里面。

在以下展示的代码中,我们分别尝试向 databases 集合添加元素 "Redis""MySQL" 以及 "PostgreSQL" ,但是因为这些元素都已经存在于 databases 集合,所以 SADD 命令将忽略这些元素:

  1. redis> SADD databases "Redis"
  2. (integer) 0 -- 成功添加的新元素数量为 0 ,表示没有任何新元素被添加到集合当中
  3.  
  4. redis> SADD databases "MySQL" "PostgreSQL"
  5. (integer) 0 -- 同样,这次也没有任何元素被添加到集合里面

而在以下代码中,SADD 命令会将新元素 "Neo4j" 添加到集合里面,并忽略 "Redis""MySQL" 这两个已存在的元素:

  1. redis> SADD databases "Redis" "MySQL" "Neo4j"
  2. (integer) 1

其他信息

属性
复杂度O(N),其中 N 为用户给定的元素数量。
版本要求SADD 命令从 Redis 1.0.0 版本开始可用,但是只有 Redis 2.4 或以上版本的 SADD 命令可以一次添加多个元素,Redis 2.4 以下版本的 SADD 命令每次只能添加一个元素。