Redis整理(6)之数据类型set

本文介绍集合的基本概念,包括其特点如无序性和唯一性,并详细解释了集合在实际场景中的应用,例如通过集合运算匹配兴趣相似的人、优化教室资源利用等。此外,还提供了使用Redis进行集合操作的示例代码。

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

集合。可以和列表项比较

存储内容是一致的。
集合是无序的。
集合必须保证唯一性

集合场景应用.
1.最基本的应用就是可以做数学集合运算
2.假设在社交网路中,每个人都是一个集合,集合里面有其个人的一些兴趣爱好。那么通过集合的交集运算,就可以找出和你有相管兴趣的人,可运  用于匹配系统,还有类似个人学历,工作地点,出生地点,通过集合运算以此来发现相近的人。
3.并集运用于,假如在有限的空间资源下,不同老师对一些教室资源的利用时间表可以做成集合。所有老师并集运算可以得出教室资源的总利用率,交集可以查看是否有冲突。
4.总结,集合在规划一些特性还有时间段是否相同或者对一些东西进行归并,有有着很好的效果。

sadd key member [member1....]  向集合key添加元素member1,2,3
srem key member 移除元素
smembers key 返回集合所有的元素值
scard key 返回集合个数
sismember key value 判断value是否是key中的元素

sdiff setA setB  差集
sinter setA setB 交集
sunion setA setB 并集
sdiffstore destination key1 key2 将key1,key2的运算结果给destination

srandmember key [count]  随机返回若count个元素
spop key 从集合弹出一个元素

<?php
	 $redis = new Redis;
	 $redis->connect('192.168.104.10',6379);
	 $redis->sAdd('setA',1,2,3); //创建集合A,并传入1,2,3 三个元素
	 $redis->sRem('setA',1);//从集合A去掉1 元素
	 print_r($redis->sMembers('setA'));//获得集合所有元素
	 //现在setA只有 2 3
	 echo "<hr>";
	 print $redis->sCard('setA');
	 echo "<hr>";
	 print $redis->sIsMember('setA',2);
	 
	 $redis->sAdd('setB',1,2); //创建集合A,并传入1,2 三个元素
	 echo "<hr>";
	 echo "A-B";
	 print_r($redis->sDiff('setA','setB')); //集合差运算
	 echo "<hr>";
	 echo "A∪B";
	 print_r($redis->sInter('setA','setB'));//集合交运算
	 echo "<hr>";
	 echo "A∩B";
	 print_r($redis->sUnion('setA','setB'));//集合并运算
	 
	 echo "<hr>返回随机值";
	 print_r($redis->sRandMember('setA',1)); //返回一个随机值
	 $redis->sPop('setA'); //随机选择一个元素弹出
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值