SREM:从集合中移除元素
通过使用 SREM
命令,用户可以从集合里面移除一个或多个已存在的元素:
- SREM set element [element ...]
这个命令会返回被移除的元素数量作为返回值。
以下代码展示了如何使用 SREM
命令去移除 databases
集合中的 "Neo4j"
等元素:
- redis> SREM databases Neo4j
- (integer) 1 -- 有一个元素被移除
- redis> SREM databases "MS SQL" "Oracle" "CouchDB"
- (integer) 3 -- 有三个元素被移除
图 5-3 展示了 databases
集合在执行 SREM
命令过程中的变化。
图 5-3 databases
集合的整个变化过程
执行 SREM
命令之前执行 SREM databases "Neo4j"
之后执行 SREM databases "MS SQL" "Oracle" "CouchDB"
之后
忽略不存在的元素
如果用户给定的元素并不存在于集合当中,那么 SREM
命令将忽略不存在的元素,只移除那些确实存在的元素。
在以下代码中,因为元素 "Memcached"
并不存在于 databases
集合,所以 SREM
命令没有从集合里面移除任何元素:
- redis> SREM databases "Memcached"
- (integer) 0 -- 没有元素被移除
其他信息
属性 | 值 |
---|---|
复杂度 | O(N),其中 N 为用户给定的元素数量。 |
版本要求 | SREM 命令从 Redis 1.0.0 版本开始可用,但是只有 Redis 2.4 或以上版本的 SREM 命令可以一次删除多个元素,Redis 2.4 以下版本的 SREM 命令每次只能删除一个元素。 |