Redis 的 集合 是无序的。SADD 命令用于将一个或多个 member 元素加入到集合 KEY 当中,已经存在于集合的 member 元素将被忽略。
假如 KEY 不存在,则创建一个只包含 member 元素作成员的集合。当 KEY 不是集合类型时,返回一个错误。在 Redis2.4 版本以前, SADD 只接受单个 member 值。
192.168.98.70:6379> SADD KEY member [member ...]
参数 | 描述 |
---|---|
KEY | 要添加元素的集合的键。 |
member | 要添加的元素。 |
被添加到集合中的新元素的数量,不包括被忽略的元素。
O(N), N 是被添加的元素的数量。
>= 1.0.0
使用 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 ,此处说明了列表是无序的。
使用 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 为非集合类型,返回错误
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 命令用于将一个或多个 member 元素加入到集合 KEY 当中,已经存在于集合的 member 元素将被忽略。Redis SADD 命令语法:
192.168.98.70:6379> SADD KEY member [member ...]