Redis SADD命令

Redis SADD命令教程

Redis集合 是无序的。SADD 命令用于将一个或多个 member 元素加入到集合 KEY 当中,已经存在于集合的 member 元素将被忽略。

假如 KEY 不存在,则创建一个只包含 member 元素作成员的集合。当 KEY 不是集合类型时,返回一个错误。在 Redis2.4 版本以前, SADD 只接受单个 member 值。

Redis SADD命令详解

语法

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

参数

参数 描述
KEY 要添加元素的集合的键。
member 要添加的元素。

返回值

被添加到集合中的新元素的数量,不包括被忽略的元素。

时间复杂度

O(N), N 是被添加的元素的数量。

可用版本

>= 1.0.0

案例

KEY不存在,添加单个元素

使用 SADD 命令,向集合添加单个元素

192.168.98.70:6379> EXISTS haicoder (integer) 0 192.168.98.70:6379> SADD haicoder Redis (integer) 1 192.168.98.70:6379> SADD haicoder Mongo (integer) 1 192.168.98.70:6379> SMEMBERS haicoder 1) "Mongo" 2) "Redis" 192.168.98.70:6379> DEL haicoder (integer) 1

我们首先,使用 EXISTS 命令,判断键为 haicoder 的集合不存在。接着,使用 SADD 命令,向键为 haicoder 的集合插入元素 Redis。使用 SADD 命令,向键为 haicoder 的集合插入元素 Mongo。

最后,我们使用 SMEMBERS 命令,获取键为 haicoder 的集合的所有元素,返回了 Mongo 和 Redis ,此处说明了列表是无序的。

KEY不存在,添加多个元素

使用 SADD 命令,可以同时向集合添加多个元素

192.168.98.70:6379> EXISTS haicoder (integer) 0 192.168.98.70:6379> SADD haicoder Redis Mongo Mysql SqlServer (integer) 4 192.168.98.70:6379> SMEMBERS haicoder 1) "Mongo" 2) "Redis" 3) "Mysql" 4) "SqlServer" 192.168.98.70:6379> DEL haicoder (integer) 1

我们首先,使用 EXISTS 命令,判断键为 haicoder 的集合不存在。接着,我们使用 SADD 命令,同时向键为 haicoder 的集合插入元素 Redis、Mongo、Mysql 和 SqlServer。

最后,我们使用 SMEMBERS 命令,获取键为 haicoder 的集合的所有元素。

插入重复元素

集合不可以插入重复元素

192.168.98.70:6379> SADD haicoder Redis (integer) 1 192.168.98.70:6379> SADD haicoder Mongo (integer) 1 192.168.98.70:6379> SADD haicoder Redis (integer) 0 192.168.98.70:6379> SMEMBERS haicoder 1) "Mongo" 2) "Redis" 192.168.98.70:6379> DEL haicoder (integer) 1

我们首先,使用 SADD 命令,向键为 haicoder 的集合插入值 Redis。使用 SADD 命令,向键为 haicoder 的集合的头部插入值 Mongo。

接着,我们使用 SADD 命令,向键为 haicoder 的集合的插入值 Redis,此时返回 0,表明插入失败。最后,我们使用 SMEMBERS 命令,获取键为 haicoder 的集合的所有元素,集合中只包含一个 Redis。

KEY为非集合类型

KEY 为非集合类型,返回错误

192.168.98.70:6379> SET haicoder Redis OK 192.168.98.70:6379> TYPE haicoder string 192.168.98.70:6379> SADD haicoder Mongo (error) WRONGTYPE Operation against a key holding the wrong kind of value 192.168.98.70:6379> DEL haicoder (integer) 1

我们首先,使用 SET 命令,设置键 haicoder 的值为 Redis。接着,我们使用 TYPE 命令,获取键 haicoder 的类型,返回了 string。

最后,我们使用 SADD 命令,向键为 haicoder 的非集合类型插入值,报错。

Redis SADD命令总结

Redis 的集合是无序的。SADD 命令用于将一个或多个 member 元素加入到集合 KEY 当中,已经存在于集合的 member 元素将被忽略。Redis SADD 命令语法:

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