Set(集合)
Set 是 String 类型的无序集合,成员唯一,不会出现重复的数据。Set 最多可以包含 232 - 1 个元素(40多亿)。
应用场景
统计访问IP
可以用来记录访问的IP,Set 有成员唯一性,所以不用担心 重复记录。
联系人、粉丝列表
记录用户的联系人、粉丝列表或者关注列表,利用Set 的交集可以得到不同用户的共同关注、共同联系人等。
实例
sAdd($redisKey, 'kobe');// 向set中添加成员print_r($redis->sMembers($redisKey));// 获取set中的所有成员 Array ( [0] => kobe )echo '';var_dump($redis->sAdd($redisKey, 'kobe'));// 因为set具有成员唯一性,所以这个添加不成功 int(0)echo '';$redis->sAdd($redisKey, 'Gasol');echo $redis->sCard($redisKey) . '';// 获取set中的成员数 2var_dump($redis->sIsMember($redisKey, 'kobe'));// 当前值是否存在 bool(true)echo '';$redis->sAdd($redisKey1, 'kobe', 'fisher', 'iverson');// Array ( [0] => iverson [1] => kobe [2] => fisher )echo $redis->sPop($redisKey1) . '';// 获取并移除一个随机元素 iversonprint_r($redis->sInter($redisKey, $redisKey1));// 获取指定set的交集 Array ( [0] => kobe )echo '';print_r($redis->sDiff($redisKey, $redisKey1));// 获取指定set的差集 Array ( [0] => Gasol )echo '';echo $redis->sRandMember($redisKey) . '';// 获取指定数量的随机数,默认为1个 Gasolvar_dump($redis->sRem($redisKey1, 'kobe'));// 删除指定值echo '';$redis->sAdd($redisKey2, 'Lakers', 'Spurs', 'Warriors', 'Rockets');$redis->sAdd($redisKey3, 'Celtics', 'Bulls', '76ers', 'Warriors', 'Rockets');$redis->sInterStore('temp', $redisKey2, $redisKey3);// 获取指定set的交集,并将结果存储在自定义set中print_r($redis->sMembers('temp'));// Array ( [0] => Rockets [1] => Warriors )echo '';$redis->sDiffStore('temp1', $redisKey2, $redisKey3);// 获取指定set的差集,并将结果存储在自定义set中print_r($redis->sMembers('temp1'));// Array ( [0] => Lakers [1] => Spurs )echo '';$redis->sMove('temp', 'temp1', 'Rockets');// 将指定值,从temp中移动到temp1中print_r($redis->sMembers('temp1'));// Array ( [0] => Lakers [1] => Spurs )echo '';print_r($redis->sUnion($redisKey2, $redisKey3));// 获取指定set的并集 Array ( [0] => Lakers [1] => Warriors [2] => Bulls [3] => Spurs [4] => 76ers [5] => Celtics [6] => Rockets )echo '';$redis->sUnionStore('temp2', $redisKey2, $redisKey3);// 获取指定set的并集,并将结果存储在自定义set中print_r($redis->sMembers('temp2'));// Array ( [0] => Lakers [1] => Warriors [2] => Bulls [3] => Spurs [4] => 76ers [5] => Celtics [6] => Rockets )
参考资料:。