Redis SREM命令

Redis SREM命令教程

Redis 的 SREM 命令用于移除 集合 KEY 中的一个或多个 member 元素,不存在的 member 元素会被忽略。当 KEY 不是集合类型,返回一个错误。

在 Redis 2.4 版本以前, SREM 只接受单个 member 值。

Redis SREM命令详解

语法

192.168.98.70:6379> SREM KEY member [member ...]

参数

参数 描述
KEY 要移除元素的集合的键。
member 要移除的元素。

返回值

被成功移除的元素的数量,不包括被忽略的元素。

时间复杂度

O(N), N 为给定 member 元素的数量。

可用版本

>= 1.0.0

案例

KEY存在

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命令总结

Redis 的 SREM 命令用于移除集合 KEY 中的一个或多个 member 元素,不存在的 member 元素会被忽略。Redis SREM 命令语法:

192.168.98.70:6379> SREM KEY member [member ...]