10.3 集合 -set(无序,元素具有唯一性)
10.3.1 添加
命令:sadd key value
测试:
127.0.0.1:6379> sadd gender male female
(integer) 2
127.0.0.1:6379> sadd gender yoa yoa
(integer) 1
10.3.2 查看
命令:smembers key
测试:
127.0.0.1:6379> smembers gender
1) "male"
2) "female
10.3.3 删除
命令:srem key value
测试:
127.0.0.1:6379> srem gender male
(integer) 1
127.0.0.1:6379> smembers gender
1) "female"
10.3.4 随机取出set中的指定数量的值,并删除集合中的元素
命令:spop key num
测试:
127.0.0.1:6379> sadd zimu a b c d e f g
(integer) 7
127.0.0.1:6379> spop zimu
"e"
127.0.0.1:6379> smembers zimu
1) "c"
2) "b"
3) "d"
4) "a"
5) "g"
6) "f"
127.0.0.1:6379> spop zimu 2
1) "f"
2) "b"
127.0.0.1:6379> smembers zimu
1) "c"
2) "d"
3) "a"
4) "g"
127.0.0.1:6379> spop zimu 3
1) "g"
2) "c"
3) "a"
127.0.0.1:6379> smembers zimu
1) "d"
10.3.5 随机取出set中的指定数量的值,但不删除集合中的元素
命令:srandmember key num
测试:
127.0.0.1:6379> sadd zimu a b c d e f g
(integer) 6
127.0.0.1:6379> srandmember zimu
"a"
127.0.0.1:6379> smembers zimu
1) "c"
2) "e"
3) "b"
4) "d"
5) "g"
6) "f"
7) "a"
127.0.0.1:6379> srandmember zimu 3
1) "b"
2) "f"
3) "g"
127.0.0.1:6379> smembers zimu
1) "c"
2) "e"
3) "b"
4) "d"
5) "g"
6) "f"
7) "a"
10.3.6 查看集合中是否存在某一个元素
命令:sismember key value
存在返回1,不存在返回0
测试:
127.0.0.1:6379> smembers zimu
1) "c"
2) "e"
3) "b"
4) "d"
5) "g"
6) "f"
7) "a"
127.0.0.1:6379> sismember zimu a
(integer) 1
127.0.0.1:6379> sismember zimu l
(integer) 0
10.3.7 查看集合中元素的个数
命令:scard key
测试:
127.0.0.1:6379> smembers zimu
1) "c"
2) "e"
3) "b"
4) "d"
5) "g"
6) "f"
7) "a"
127.0.0.1:6379> scard zimu
(integer) 7
10.3.8 将一个集合中元素移动到另外一个集合中
命令:smove src dest value
测试:
127.0.0.1:6379> smembers zimu
1) "c"
2) "e"
3) "b"
4) "d"
5) "g"
6) "f"
7) "a"
127.0.0.1:6379> smove zimu zimu1 c
(integer) 1
127.0.0.1:6379> smembers zimu
1) "e"
2) "b"
3) "d"
4) "g"
5) "f"
6) "a"
127.0.0.1:6379> smembers zimu1
1) "c"
127.0.0.1:6379> scard zimu
(integer) 6
127.0.0.1:6379> scard zimu1
(integer) 1
127.0.0.1:6379> smove zimu zimu1 l
(integer) 0
127.0.0.1:6379> scard zimu
(integer) 6
127.0.0.1:6379> scard zimu1
(integer) 1
127.0.0.1:6379> smembers zimu
1) "e"
2) "b"
3) "d"
4) "g"
5) "f"
6) "a"
127.0.0.1:6379> smembers zimu1
1) "c"
10.3.9 求集合的交集
命令:sinter key1 key2 key3 ...
测试:
127.0.0.1:6379> sadd lisi a b c d e
(integer) 5
127.0.0.1:6379> sadd wang a c d f g
(integer) 5
127.0.0.1:6379> sadd zhang c d f k j
(integer) 5
127.0.0.1:6379> sinter lisi wang zhang
1) "c"
2) "d"
10.3.10 求集合的并集
命令:sunion key1 key2 key3 ...
测试:
127.0.0.1:6379> sunion lisi wang zhang
1) "d"
2) "b"
3) "g"
4) "f"
5) "a"
6) "j"
7) "k"
8) "e"
9) "c"
10.3.11 求集合的差集
命令:sdiff key1 key2 key3 ...
测试:
127.0.0.1:6379> sdiff lisi wang
1) "b"
2) "e"
127.0.0.1:6379> sdiff wang lisi
1) "g"
2) "f"
127.0.0.1:6379> sdiff wang lisi zhang
1) "g"
10.3.12 求集合的交集并存储
命令:sinterstore dest key1 key2 ....
测试:
127.0.0.1:6379> sinterstore destinter lisi wang
(integer) 3
127.0.0.1:6379> smembers destinter
1) "c"
2) "d"
3) "a"
10.3.13 求集合的并集并存储
命令:sunionstore dest key1 key2 ...
测试:
127.0.0.1:6379> sunionstore destunion lisi wang
(integer) 7
127.0.0.1:6379> smembers destunion
1) "c"
2) "e"
3) "b"
4) "d"
5) "g"
6) "f"
7) "a"
10.3.14 求集合的差集并存储
命令:sdiffstore dest key1 key2 ...
测试:
127.0.0.1:6379> sdiffstore destdiff lisi wang
(integer) 2
127.0.0.1:6379> smembers destdiff
1) "b"
2) "e"