sadd 向set集合中加入一个或多个元素
127.0.0.1:6379> sadd myset a b c d e a c
(integer) 5
127.0.0.1:6379> smembers myset
1) "c"
2) "b"
3) "d"
4) "a"
5) "e"
#可见,set集合,不能存相同的元素,已经存在于集合的成员元素将被忽略
smembers 返回set集合中所有的元素
127.0.0.1:6379> smembers myset
1) "c"
2) "b"
3) "d"
4) "a"
5) "e"
srem 移除set集合一个或多个元素
127.0.0.1:6379> smembers myset
1) "c"
2) "b"
3) "d"
4) "a"
5) "e"
127.0.0.1:6379> clear
127.0.0.1:6379> srem myset a b c
(integer) 3
127.0.0.1:6379> smembers myset
1) "d"
2) "e"
#此时再向myset中添加元素,可见set集合是无序的
127.0.0.1:6379> sadd myset a b c
(integer) 3
127.0.0.1:6379> smembers myset
1) "b"
2) "d"
3) "a"
4) "c"
5) "e"
scard 返回set集合中元素的个数
127.0.0.1:6379> smembers myset
1) "b"
2) "a"
3) "c"
127.0.0.1:6379> scard myset
(integer) 3
sismember 查看set集合中是否存在某个元素
127.0.0.1:6379> smembers myset
1) "b"
2) "a"
3) "c"
127.0.0.1:6379> sismember myset s
(integer) 0 #存在
127.0.0.1:6379> sismember myset a
(integer) 1 #不存在
smove 将 member 元素从 source 集合移动到 destination 集合
#SMOVE 是原子性操作。
#如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
#当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。
#当 source 或 destination 不是集合类型时,返回一个错误。
127.0.0.1:6379> sadd source a b c d
(integer) 4
127.0.0.1:6379> sadd destination e f g
(integer) 3
127.0.0.1:6379> smove source destination d #当destination不存在时,则会先创建,在移动,但是,当移动的元素不存在时,则不会创建
(integer) 1
127.0.0.1:6379> smembers source
1) "b"
2) "a"
3) "c"
127.0.0.1:6379> smembers destination
1) "d"
2) "g"
3) "f"
4) "e"
srandmember 随机返回一个或者多个元素
127.0.0.1:6379> smembers myset
1) "kang"
2) "jack"
3) "tony"
4) "tom"
5) "qiyuan"
127.0.0.1:6379> srandmember myset 2 #随机返回2个元素,默认返回1个
1) "qiyuan"
2) "jack"
127.0.0.1:6379> srandmember myset 3
1) "tom"
2) "tony"
3) "kang"
127.0.0.1:6379> srandmember myset 3
1) "tony"
2) "jack"
3) "kang"
sinter 返回所指定集合的交集
127.0.0.1:6379> sadd set1 a b c d e
(integer) 5
127.0.0.1:6379> sadd set2 b c d f g h
(integer) 6
127.0.0.1:6379> sadd set3 h i j k
(integer) 4
127.0.0.1:6379> sinter set1 set2
1) "d"
2) "b"
3) "c"
127.0.0.1:6379> sinter set1 set2 set3
(empty array)
sinterstore 返回所指定集合的交集,并存储到另一个集合中
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> clear
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 c d e f
(integer) 4
127.0.0.1:6379> sadd set3 d g h j
(integer) 4
127.0.0.1:6379> sinterstore destination set1 set2 set3 #返回交集,存储到destination中
(integer) 1
127.0.0.1:6379> smembers destination
1) "d"
sdiff 返回集合的差集
#返回的是第一个集合 与 之后所有集合的差集
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 c d e f
(integer) 4
127.0.0.1:6379> sadd set3 d g h j
(integer) 4
127.0.0.1:6379> sdiff set1 set2 set3 #返回的是 set1 与 set2和set3的差集
1) "b"
2) "a"
127.0.0.1:6379> sdiff set2 set3 #返回的是 set2 与 set3的差集
1) "c"
2) "e"
3) "f"
sdiffstore 返回差集 存储到一个集合中
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 c d e f
(integer) 4
127.0.0.1:6379> sadd set3 d g h j
(integer) 4
127.0.0.1:6379> sdiffstore destination set1 set2 set3 #返回的差集,存储到destination中
(integer) 2
127.0.0.1:6379> smembers distination
(empty array)
127.0.0.1:6379> smembers destination
1) "b"
2) "a"
sunion 返回所有集合的并集
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 c d e f
(integer) 4
127.0.0.1:6379> sadd set3 d g h j
(integer) 4
127.0.0.1:6379> sunion set1 set2 set3
1) "j"
2) "b"
3) "d"
4) "h"
5) "a"
6) "c"
7) "e"
8) "f"
9) "g"
sunionstore 返回所有几个的并集,并存储到另一个集合中
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 c d e f
(integer) 4
127.0.0.1:6379> sadd set3 d g h j
(integer) 4
127.0.0.1:6379> sunionstore destination set1 set2 set3
(integer) 9
127.0.0.1:6379> smembers destination
1) "j"
2) "b"
3) "d"
4) "h"
5) "a"
6) "c"
7) "e"
8) "f"
9) "g"
spop 随机移除元素
127.0.0.1:6379> smembers myset
1) "h"
2) "a"
3) "c"
4) "f"
5) "e"
6) "b"
7) "k"
8) "j"
9) "i"
10) "g"
11) "d"
12) "l"
127.0.0.1:6379> spop myset
"g"
127.0.0.1:6379> spop myset
"i"
127.0.0.1:6379> spop myset
"j"
127.0.0.1:6379> spop myset 3
1) "k"
2) "a"
3) "c"