SET常用命令
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
SADD key member1 [member2]
向集合添加一个或多个成员
SREM key member1 [member2]
移除集合中一个或多个成员
SCARD key
获取集合的成员数
SMEMBERS key
返回集合中的所有成员
SRANDMEMBER key [count]
返回集合中一个或多个随机数
SPOP key
移除并返回集合中的一个随机元素
SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合
SDIFF key1 [key2]
返回第一个集合与其他集合之间的差集。
SINTERSTORE destination key1 [key2]
返回给定所有集合的交集并存储在 destination 中
SUNION key1 [key2]
返回所有给定集合的并集
案例1
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> SADD SET MAPREDUCE
(integer) 1
127.0.0.1:6379> SADD SET TOPOLOGY
(integer) 1
127.0.0.1:6379> SADD SET RDD
(integer) 1
127.0.0.1:6379> KEYS *
1) "SET"
127.0.0.1:6379> SADD SET RDD
(integer) 0
127.0.0.1:6379> SREM SET RDD
(integer) 1
127.0.0.1:6379> SMEMBERS SET
1) "TOPOLOGY"
2) "MAPREDUCE"
案例2
127.0.0.1:6379> SADD SET RDD
(integer) 1
127.0.0.1:6379> SADD SET DAG
(integer) 1
127.0.0.1:6379> SADD SET HDFS
(integer) 1
127.0.0.1:6379> SADD SET GFS
(integer) 1
127.0.0.1:6379> SADD SET DEEPLEARNING
(integer) 1
127.0.0.1:6379> SRANDMEMBER SET 2
1) "HDFS"
2) "GFS"
127.0.0.1:6379> SRANDMEMBER SET 2
1) "HDFS"
2) "GFS"
127.0.0.1:6379> SRANDMEMBER SET
"GFS"
127.0.0.1:6379> SRANDMEMBER SET
"DEEPLEARNING"
127.0.0.1:6379> SRANDMEMBER SET
"MAPREDUCE"
127.0.0.1:6379> SRANDMEMBER SET
"MAPREDUCE"
127.0.0.1:6379> SRANDMEMBER SET
"DAG"
127.0.0.1:6379> SRANDMEMBER SET
"RDD"
127.0.0.1:6379> SRANDMEMBER SET
"TOPOLOGY"
127.0.0.1:6379> SPOP SET
"DAG"
127.0.0.1:6379> SPOP SET
"GFS"
127.0.0.1:6379> SMEMBERS SET
1) "HDFS"
2) "MAPREDUCE"
3) "TOPOLOGY"
4) "RDD"
5) "DEEPLEARNING"
127.0.0.1:6379> SMOVE SET SET1 HDFS # 将SET中的
(integer) 1
127.0.0.1:6379> SMEMBERS SET
1) "MAPREDUCE"
2) "TOPOLOGY"
3) "RDD"
4) "DEEPLEARNING"
127.0.0.1:6379> SMEMBERS SET1
1) "HDFS"
案例3
127.0.0.1:6379> SADD K1 V1
(integer) 1
127.0.0.1:6379> SADD K1 V2
(integer) 1
127.0.0.1:6379> SADD K1 V3
(integer) 1
127.0.0.1:6379> SADD K1 V4
(integer) 1
127.0.0.1:6379> SADD K2 V2
(integer) 1
127.0.0.1:6379> SADD K2 V3
(integer) 1
127.0.0.1:6379> SMEMBERS K1
1) "V4"
2) "V2"
3) "V3"
4) "V1"
127.0.0.1:6379> SMEMBERS K2
1) "V2"
2) "V3"
127.0.0.1:6379> SDIFF K1 K2
1) "V4"
2) "V1"
127.0.0.1:6379> SINTER K1 K2
1) "V2"
2) "V3"
127.0.0.1:6379> SUNION K1 K2
1) "V3"
2) "V1"
3) "V4"
4) "V2"