SADD:将元素添加到集合

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

SADD set element [element ...]

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

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

redis> SADD databases "Redis"
(integer) 1 -- 集合新添加了1个元素
redis> SADD databases "MongoDB" "CouchDB"
(integer) 2 -- 集合新添加了2个元素
redis> SADD databases "MySQL" "PostgreSQL" "MS SQL" "Oracle"
(integer) 4 -- 集合新添加了4个元素

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

image 2025 01 03 17 35 40 620
Figure 1. 图5-2 使用SADD命令构建集合的整个过程

忽略已存在元素

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

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

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

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

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

其它信息

  • 复杂度:O(N),其中 N 为用户给定的元素数量。

  • 版本要求:SADD 命令从 Redis 1.0.0 版本开始可用,但是只有 Redis 2.4 或以上版本的 SADD 命令可以一次添加多个元素,Redis 2.4 以下版本的 SADD 命令每次只能添加一个元素。