Redis的数据类型(四)——Set

本文介绍了Redis的Set类型,它是string类型的无序集合,不允许重复元素,最多有2的32次方减1个元素。还列举了向集合添加、查看、删除元素等常用命令,如sadd、smembers、srem等,以及求差集、交集、和集的运算命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis的Set是string类型的无序集合,不允许有重复元素,一个集合中最多2的32次方减1个元素。

命令:sadd key member [member…],向集合中添加元素,已存在的元素不会再添加

127.0.0.1:6379> sadd set1 a 
(integer) 1
127.0.0.1:6379> sadd set1 a b c
(integer) 2

命令:smembers key ,查看集合中所有元素

127.0.0.1:6379> smembers set1
1) "c"
2) "b"
3) "a"

命令:srem key member [member…],删除集合中指定元素

127.0.0.1:6379> srem set1 a
(integer) 1
127.0.0.1:6379> smembers set1
1) "c"
2) "b"
127.0.0.1:6379> srem set1 b c
(integer) 2
127.0.0.1:6379> smembers set1
(empty list or set)

命令:scard key,返回集合中元素个数

127.0.0.1:6379> sadd set1 a b c d e f g 
(integer) 7
127.0.0.1:6379> smembers set1
1) "b"
2) "a"
3) "f"
4) "d"
5) "g"
6) "c"
7) "e"

命令:spop key [count] ,从set中取出元素,并且元素会从set中删除,由于set内元素是无序的,所以删除元素是随机的;

127.0.0.1:6379> spop set1 1
1) "b"
127.0.0.1:6379> smembers set1
1) "f"
2) "d"
3) "g"
4) "c"
5) "e"
6) "a"
127.0.0.1:6379> spop set1 2
1) "g"
2) "c"
127.0.0.1:6379> smembers set1
1) "f"
2) "d"
3) "e"
4) "a"

命令:srandmember key [count] ,从set中取出元素,不会删除元素;

127.0.0.1:6379> srandmember set1 2
1) "e"
2) "d"
127.0.0.1:6379> srandmember set1 2
1) "f"
2) "d"
127.0.0.1:6379> smembers set1
1) "f"
2) "d"
3) "e"
4) "a"

命令:smove source destination member,如果source集合不存在或不包含指定的元素,则命令返回0,否则,元素从source集合中删除并添加到destination集合中;当 destination 集合已经包含 member 元素时, smove命令只是将 source 集合中的元素删除;当 source 或 destination 不是集合类型时,返回一个错误。

127.0.0.1:6379> smove set1 set2 f
(integer) 1
127.0.0.1:6379> smembers set1
1) "d"
2) "e"
3) "a"
127.0.0.1:6379> smembers set2
1) "f"

命令:sismember key member,查看元素是否存在

127.0.0.1:6379> sismember set1 a
(integer) 1
127.0.0.1:6379> sismember set2 a
(integer) 0
127.0.0.1:6379> sismember set2 f
(integer) 1

命令:sdiff key [key…],求差集运算

127.0.0.1:6379> sadd set1 a b c d e f 
(integer) 3
127.0.0.1:6379> smembers set1
1) "f"
2) "d"
3) "b"
4) "c"
5) "e"
6) "a"
127.0.0.1:6379> sadd set2 g m n a
(integer) 4
127.0.0.1:6379> smembers set2
1) "g"
2) "f"
3) "m"
4) "n"
5) "a"
127.0.0.1:6379> sdiff set1 set2
1) "d"
2) "c"
3) "e"
4) "b"

命令:sinter key [key…],求交集运算

127.0.0.1:6379> sinter set1 set2
1) "f"
2) "a"

命令:sunion key [key…],求和运算

127.0.0.1:6379> sunion set1 set2
1) "m"
2) "b"
3) "g"
4) "c"
5) "e"
6) "a"
7) "d"
8) "f"
9) "n"

 

 

如果有写的不对的地方,请大家多多批评指正,非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值