Redis 的 SREM 命令用于移除 集合 KEY 中的一个或多个 member 元素,不存在的 member 元素会被忽略。当 KEY 不是集合类型,返回一个错误。
在 Redis 2.4 版本以前, SREM 只接受单个 member 值。
192.168.98.70:6379> SREM KEY member [member ...]
参数 | 描述 |
---|---|
KEY | 要移除元素的集合的键。 |
member | 要移除的元素。 |
被成功移除的元素的数量,不包括被忽略的元素。
O(N), N 为给定 member 元素的数量。
>= 1.0.0
KEY 存在,移除元素
192.168.98.70:6379> SADD haicoder Redis Mongo Mysql (integer) 3 192.168.98.70:6379> SREM haicoder Redis (integer) 1 192.168.98.70:6379> SMEMBERS haicoder 1) "Mongo" 2) "Mysql" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 SADD 命令,向键为 haicoder 的集合中添加 3 个元素。接着,我们使用 SREM 命令,删除键为 haicoder 的集合中的元素 Redis 。
最后,我们使用 SMEMBERS 命令,获取集合 haicoder 的所有元素,此时元素 Redis 已被移除。
移除不存在的元素,不做任何操作
192.168.98.70:6379> SADD haicoder Redis Mongo Mysql (integer) 3 192.168.98.70:6379> SREM haicoder Sql (integer) 0 192.168.98.70:6379> SMEMBERS haicoder 1) "Mongo" 2) "Redis" 3) "Mysql" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 SADD 命令,向键为 haicoder 的集合中添加 3 个元素。接着,我们使用 SREM 命令,删除键为 haicoder 的集合中不存在的元素 Sql ,返回 0,即删除失败。
最后,我们使用 SMEMBERS 命令,获取集合 haicoder 的所有元素,此时元素还是开始添加的元素。
SREM 可以一次移除多个元素
192.168.98.70:6379> SADD haicoder Redis Mongo Mysql (integer) 3 192.168.98.70:6379> SREM haicoder Redis Mysql (integer) 2 192.168.98.70:6379> SMEMBERS haicoder 1) "Mongo" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 SADD 命令,向键为 haicoder 的集合中添加 3 个元素。接着,我们使用 SREM 命令,同时删除键为 haicoder 的集合的 2 个元素。
最后,我们使用 SMEMBERS 命令,获取集合 haicoder 的所有元素,此时元素只剩下 Mongo。
Redis 的 SREM 命令用于移除集合 KEY 中的一个或多个 member 元素,不存在的 member 元素会被忽略。Redis SREM 命令语法:
192.168.98.70:6379> SREM KEY member [member ...]