redis学习(5)—操作set类型命令

1、什么是set数据类型
redis的set和java的set集合功能差不多。集合(set)的主要功能就是求交集、并集、差集。set集合是无序的,set集合不允许有重复的元素
例子:
A={‘a’,’b’,’c’}
B={‘a’,’e’,’i’,’o’,’u’}
交集
inter(x, y):交集,在集合x和集合y中都存在的元素
inter(A, B) = {‘a’}
并集
union(x, y):并集,在集合x中或集合y中的元素,如果一个元素在x和y中都出现,那只记录一次即可
union(A, B) = {‘a’,’b’,’c’,’e’,’i’,’o’,’u’}
差集
diff(x, y):差集,在集合x中而不在集合y中的元素
diff(A, B) = {‘b’,’c’}
基数
card(x):基数,一个集合中元素的数量
card(A) = 3
空集:基数为0的集合

2、SADD命令
向名为key的set中添加元素member,S表示set类型
语法:SADD key member
例子:
sadd users u1 u2 u3
(integer) 3

3、SMEMBERS命令
返回名称为key的set的所有元素
语法:SMEMBERS key
例子:
smembers users
1) “u2”
2) “u1”
3) “u3”

4、SREM命令
删除名为key的set中的元素member
语法:SREM key member
例子:
srem users u3
(integer) 1
smembers users
1) “u2”
2) “u1”

5、SISMEMBER命令
member是否是名称为key的set的元素
语法:SISMEMBER key member
例子:
sismember users aaa
(integer) 0
sismember users u1
(integer) 1

6、SCARD命令
返回名称为key的set的基数,一个集合中元素的数量
语法:SCARD key
例子:
scard users
(integer) 2

7、SMOVE命令
将member元素从source集合移动到destination集合
语法:SMOVE srckey dstkey member
例子:
smembers users
1) “u4”
2) “u2”
3) “u1”
4) “u3”
smembers blacklist
(empty list or set)
smove users blacklist u1
(integer) 1
smembers users
1) “u4”
2) “u2”
3) “u3”
smembers blacklist
1) “u1”

8、SRANDMEMBER命令(抽奖)
随机返回名称为key的set的一个元素
语法:SRANDMEMBER key [count]
例子:
srandmember users
“u2”
srandmember users 2
1) “u2”
2) “u4”

9、SPOP命令
随机返回并删除名称为key的set中的一个元素
语法:SPOP key
例子:
smembers users
1) “u4”
2) “u2”
3) “u3”
spop users
“u4”
smembers users
1) “u2”
2) “u3”

10、SINTER命令
求交集
语法:SINTER key1, key2, …, key N
例子:
sadd group1 1 2 3 4 a
(integer) 5
sadd group2 a b c 1
(integer) 4
sinter group1 group2
1) “1”
2) “a”

11、SINTERSTORE命令
求交集并将交集保存到dstkey的集合
语法:SINTERSTORE dstkey, key1, key2, …, key N
例子:
sinterstore group3 group1 group2
(integer) 2
smembers group3
1) “1”
2) “a”

12、SUNION命令
求并集
语法:SUNION key1, key2, …, key N
例子:
sunion group1 group2
1) “2”
2) “a”
3) “c”
4) “1”
5) “3”
6) “4”
7) “b”

13、SUNIONSTORE命令
求并集并将并集保存到dstkey的集合
语法:SUNIONSTORE dstkey, key1, key2, …, key N
例子:
sunionstore group4 group1 group2
(integer) 7
smembers group4
1) “2”
2) “a”
3) “c”
4) “1”
5) “3”
6) “4”
7) “b”

14、SDIFF命令
求差集
语法:SDIFF key1, key2, …, key N
例子:
smembers group1
1) “2”
2) “a”
3) “1”
4) “3”
5) “4”
smembers group2
1) “1”
2) “c”
3) “b”
4) “a”
sdiff group1 group2
1) “2”
2) “3”
3) “4”

15、SDIFFSTORE命令
求差集并将差集保存到dstkey的集合
语法:SDIFFSTORE dstkey, key1, key2, …, key N
例子:
sdiffstore group5 group1 group2
(integer) 3
smembers group5
1) “2”
2) “3”
3) “4”