php操作redis(set)

本文介绍了Redis Set类型的应用,如存储好友、关注、粉丝集合,并提供了PHP操作Set的示例,包括sinter、sismember、scard等命令的使用,以及Set在随机展示和黑名单管理中的作用。

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

对set数据的操作

set类型是string类型的集合,其特点是集合元素无序且不重复,每个集合最多可以存储 232 - 1 个元素(40多亿),set类型主要有以下应用场景。

  1. 好友/关注/粉丝/感兴趣的人集合
      set类型唯一的特点使得其适合用于存储好友/关注/粉丝/感兴趣的人集合,集合中的元素数量可能很多,每次全部取出来成本不小,set类型提供了一些很实用的命令用于直接操作这些集合,如
    a. sinter命令可以获得A和B两个用户的共同好友
    b. sismember命令可以判断A是否是B的好友
    c. scard命令可以获取好友数量
    d. 关注时,smove命令可以将B从A的粉丝集合转移到A的好友集合
  2. 随机展示
      set类型适合存放所有需要展示的内容,而srandmember命令则可以从中随机获取几个。
  3. 黑名单/白名单
      经常有业务出于安全性方面的考虑,需要设置用户黑名单、ip黑名单、设备黑名单等,set类型适合存储这些黑名单数据,sismember命令可用于判断用户、ip、设备是否处于黑名单之中

demo

#demo1 展示好友和自己的共同好友的集合
$redis->flushAll();
$redis->sadd('my','a','b','c');
$redis->sAdd('myfriends','c','b','e');
var_dump($redis->sinter('my','myfriends')); #展示两个key之间共有的元素
#demo2 黑名单,白名单
$redis->sadd('myBlacklist','a','b');
$flag = $redis->sismember('myBlacklist','a');
echo $flag?1:0;

php操作set

#创建
	#添加一个或多个元素到集合中
	$redis->sadd('set','a','b');
#获取
	#返回集合中所有的元素
	$redis->smembers('set');
	#获取两个或两个以上集合的交集
	$redis->sinter('set','set1','set2');
	#获取两个或两个以上集合的并集
	$redis->sunion('set','set1','set2');
	#获取两个或者两个以上集合的差集
	$redis->sdiff('set','set1','set2');
#删除
	#删除一个或多个集合中的元素
	$redis->srem('set','a','b');
	#随机移除一个元素,并返回移除的元素
	$redis->spop('set');
	#将set的一个元素(a)移动到set1集合中去
	$redis->smove('set','set1','a');
    #判断元素是否是在指定集合中
    $redis->sismember('set','a');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想秃头的小邹

您的鼓励将是支持我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值