Redis 的 SDIFF 命令用于返回一个 集合 的全部成员,该集合是所有给定集合之间的差集。不存在的 KEY 被视为空集。
192.168.98.70:6379> SDIFF KEY [KEY ...]
参数 | 描述 |
---|---|
KEY | 要返回差集的集合的键。 |
交集成员的列表。
O(N), N 是所有给定集合的成员数量之和。
>= 1.0.0
KEY 都存在,返回源 SET 中存在,目标 SET 中不存在的元素
192.168.98.70:6379> SADD haicoder Redis Mongo Mysql (integer) 3 192.168.98.70:6379> SADD hicoder SqlServer SQL Mongo (integer) 3 192.168.98.70:6379> SMEMBERS haicoder 1) "Mongo" 2) "Redis" 3) "Mysql" 192.168.98.70:6379> SMEMBERS hicoder 1) "Mongo" 2) "SQL" 3) "SqlServer" 192.168.98.70:6379> SDIFF haicoder hicoder 1) "Redis" 2) "Mysql" 192.168.98.70:6379> DEL haicoder hicoder (integer) 2
我们首先,使用 SADD 命令,向键为 haicoder 的集合插入元素 Redis、Mongo 和 Mysql。使用 SADD 命令,向键为 hicoder 的集合插入元素 SqlServer、SQL 和 Mongo。
最后,我们使用 SDIFF 命令,获取键为 haicoder 的集合与键为 hicoder 的集合的元素的差集,即在 haicoder 集合中存在,但在 hicoder 集合中不存在的元素。
源 KEY 不存在,返回空集合
192.168.98.70:6379> SCARD haicoder (integer) 0 192.168.98.70:6379> SADD hicoder Redis Mongo (integer) 2 192.168.98.70:6379> SDIFF haicoder hicoder (empty list or set) 192.168.98.70:6379> DEL hicoder (integer) 1
我们首先,使用 SCARD 命令,获取键为 haicoder 的集合的元素个数,返回 0,即集合不存在。使用 SADD 命令,向键为 hicoder 的集合插入元素 Redis 和 Mongo。
最后,我们使用 SDIFF 命令,获取键为 haicoder 的集合与键为 hicoder 的集合的元素的差集,因为集合 haicoder 不存在,所以返回空集合。
目的 KEY 不存在,返回源集合
192.168.98.70:6379> SADD haicoder Redis Mongo (integer) 2 192.168.98.70:6379> SCARD hicoder (integer) 0 192.168.98.70:6379> SDIFF haicoder hicoder 1) "Redis" 2) "Mongo" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 SADD 命令,向键为 hicoder 的集合插入元素 Redis 和 Mongo。使用 SCARD 命令,获取键为 hicoder 的集合的元素个数,返回 0,即集合不存在。
最后,我们使用 SDIFF 命令,获取键为 haicoder 的集合与键为 hicoder 的集合的元素的差集,因为目的集合 hicoder 不存在,所以返回源集合。
Redis 的 SDIFF 命令用于返回一个集合的全部成员,该集合是所有给定集合之间的差集。Redis SDIFF 命令语法:
192.168.98.70:6379> SDIFF KEY [KEY ...]