往集合中添加元素
node01:6379> sadd myset a b c
(integer)3
node01:6379> sadd myset b c d
(integer)1
查看元素内容和数量
node01:6379> smembers myset
1)"c"2)"d"3)"b"4)"a"
node01:6379> scard myset
(integer)4
判断元素是否在集合中
node01:6379> sismember myset a
(integer)1
node01:6379> sismember myset e
(integer)0
随机返回集合中的一个元素
node01:6379> srandmember myset
"b"
node01:6379> srandmember myset
"c"
node01:6379> smembers myset
1)"c"2)"d"3)"b"4)"a"
随机移出元素并返回
node01:6379> spop myset
"c"
node01:6379> smembers myset
1)"d"2)"b"3)"a"
移出指定元素
node01:6379> srem myset a b c
(integer)2
node01:6379> smembers myset
1)"d"
从集合中移动元素到另一个集合
node01:6379> smove myset myset2 d
(integer)1
node01:6379> smembers myset
(empty list or set)
node01:6379> smembers myset2
1)"d"
差集
#清空数据库--开发时慎用,仅仅学习测试的时候使用比较方便
flushdb
#准备数据
node01:6379> sadd myset1 a b c d
(integer)4
node01:6379> sadd myset2 c
(integer)1
node01:6379> sadd myset3 a c e
(integer)3
node01:6379> sdiff myset1 myset2 myset3
1)"b"2)"d"
myset1 - myset2 - myset3 = a b c d - c - a c e = a b d - a c e = b d
#myset1和myset2相比,a、b和d三个成员是两者之间的差异成员。再用这个结果继续和myset3进行差异比较,b和d是myset3不存在的成员
node01:6379> sdiffstore diffset myset1 myset2 myset3
(integer)2
node01:6379> smembers diffset
1)"b"2)"d"
交集
myset1 :a b c d
myset2: c
myset3: a c e
node01:6379> sinter myset1 myset2 myset3
1)"c"
node01:6379> sinterstore interset myset1 myset2 myset3
(integer)1
node01:6379> smembers interset
1)"c"
并集
myset1 :a b c d
myset2: c
myset3: a c e
node01:6379> sunion myset1 myset2 myset3
1)"b"2)"e"3)"c"4)"d"5)"a"
node01:6379> sunionstore unionset myset1 myset2 myset3
(integer)5
node01:6379> smembers unionset
1)"b"2)"e"3)"c"4)"d"5)"a"
Set类型介绍命令列表命令实例扩展-应用场景类型介绍Redis中的Set类似于Java中的HashSet, 里面可以存放很多不重复的元素,也就是说可以去重,但是是无序的还需要特别注意的是Redis中的Set也支持多种集合运算,如求交集,并集,差集…命令列表命令原型时间复杂度命令描述返回值SADDkey member [member …]O(N)时间复杂度中的N表示操作的成员数量。如果在插入的过程用,参数中有的成员在Set中已经存在,该成员将被忽略,而其它成员仍将会被