Redis SDIFF命令

Redis SDIFF命令教程

Redis 的 SDIFF 命令用于返回一个 集合 的全部成员,该集合是所有给定集合之间的差集。不存在的 KEY 被视为空集。

Redis SDIFF命令详解

语法

192.168.98.70:6379> SDIFF KEY [KEY ...]

参数

参数 描述
KEY 要返回差集的集合的键。

返回值

交集成员的列表。

时间复杂度

O(N), N 是所有给定集合的成员数量之和。

可用版本

>= 1.0.0

案例

KEY都存在

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不存在

源 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不存在

目的 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 命令用于返回一个集合的全部成员,该集合是所有给定集合之间的差集。Redis SDIFF 命令语法:

192.168.98.70:6379> SDIFF KEY [KEY ...]