redis命令Set类型(七)

时间:2023-03-08 23:43:14
redis命令Set类型(七)

集合类型

集合类型:无序、不可重复

列表类型:有序、可重复

命令:

1>增加/删除元素

语法:SADD key member [member …]

127.0.0.1:6379> sadd set a b c
(integer) 3
127.0.0.1:6379> sadd set a
(integer) 0

语法:SREM key member [member …]

127.0.0.1:6379> srem set c d
(integer) 1

2>获得集合中的所有元素

语法:SMEMBERS key

127.0.0.1:6379> smembers set
1) "b"
2) "a”

3>判断元素是否在集合中

语法:SISMEMBER key member

127.0.0.1:6379> sismember set a
(integer) 1
127.0.0.1:6379> sismember set h
(integer) 0

4>运算命令

集合的差集运算 A-B

属于A并且不属于B的元素构成的集合或属于B并且不属于A的元素构成的集合eg;

语法:SDIFF key [key …]

127.0.0.1:6379> sadd setA 1 2 3
(integer) 3
127.0.0.1:6379> sadd setB 2 3 4
(integer) 3
127.0.0.1:6379> sdiff setA setB
1) "1"
127.0.0.1:6379> sdiff setB setA
1) "4"

集合的交集运算 A ∩ B

属于A且属于B的元素构成的集合

语法:SINTER key [key …]

127.0.0.1:6379> sinter setA setB
1) "2"
2) "3"

集合的并集运算 A ∪ B

属于A或者属于B的元素构成的集合

语法:SUNION key [key …]

127.0.0.1:6379> sunion setA setB
1) "1"
2) "2"
3) "3"
4) "4"

5>其他

@获得集合中元素的个数

语法:SCARD key

127.0.0.1:6379> smembers setA
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> scard setA
(integer) 3

@从集合中弹出一个元素

注意:由于集合是无序的,所有SPOP命令会从集合中随机选择一个元素弹出

语法:SPOP key

127.0.0.1:6379> spop setA
"1“