资讯专栏INFORMATION COLUMN

Redis 使用记录(五)

kohoh_ / 3699人阅读

摘要:集合是类型的无序集合,成员唯一,不会出现重复的数据。应用场景统计访问可以用来记录访问的,有成员唯一性,所以不用担心重复记录。联系人粉丝列表记录用户的联系人粉丝列表或者关注列表,利用的交集可以得到不同用户的共同关注共同联系人等。

Set(集合)

Set 是 String 类型的无序集合,成员唯一,不会出现重复的数据。Set 最多可以包含 232 - 1 个元素(40多亿)。

应用场景 统计访问IP

可以用来记录访问的IP,Set 有成员唯一性,所以不用担心 重复记录。

联系人、粉丝列表

记录用户的联系人、粉丝列表或者关注列表,利用Set 的交集可以得到不同用户的共同关注、共同联系人等。

实例

</>复制代码

  1. sAdd($redisKey, "kobe");// 向set中添加成员
  2. print_r($redis->sMembers($redisKey));// 获取set中的所有成员 Array ( [0] => kobe )
  3. echo "
    ";
  4. var_dump($redis->sAdd($redisKey, "kobe"));// 因为set具有成员唯一性,所以这个添加不成功 int(0)
  5. echo "
    ";
  6. $redis->sAdd($redisKey, "Gasol");
  7. echo $redis->sCard($redisKey) . "
    ";// 获取set中的成员数 2
  8. var_dump($redis->sIsMember($redisKey, "kobe"));// 当前值是否存在 bool(true)
  9. echo "
    ";
  10. $redis->sAdd($redisKey1, "kobe", "fisher", "iverson");// Array ( [0] => iverson [1] => kobe [2] => fisher )
  11. echo $redis->sPop($redisKey1) . "
    ";// 获取并移除一个随机元素 iverson
  12. print_r($redis->sInter($redisKey, $redisKey1));// 获取指定set的交集 Array ( [0] => kobe )
  13. echo "
    ";
  14. print_r($redis->sDiff($redisKey, $redisKey1));// 获取指定set的差集 Array ( [0] => Gasol )
  15. echo "
    ";
  16. echo $redis->sRandMember($redisKey) . "
    ";// 获取指定数量的随机数,默认为1个 Gasol
  17. var_dump($redis->sRem($redisKey1, "kobe"));// 删除指定值
  18. echo "
    ";
  19. $redis->sAdd($redisKey2, "Lakers", "Spurs", "Warriors", "Rockets");
  20. $redis->sAdd($redisKey3, "Celtics", "Bulls", "76ers", "Warriors", "Rockets");
  21. $redis->sInterStore("temp", $redisKey2, $redisKey3);// 获取指定set的交集,并将结果存储在自定义set
  22. print_r($redis->sMembers("temp"));// Array ( [0] => Rockets [1] => Warriors )
  23. echo "
    ";
  24. $redis->sDiffStore("temp1", $redisKey2, $redisKey3);// 获取指定set的差集,并将结果存储在自定义set
  25. print_r($redis->sMembers("temp1"));// Array ( [0] => Lakers [1] => Spurs )
  26. echo "
    ";
  27. $redis->sMove("temp", "temp1", "Rockets");// 将指定值,从temp中移动到temp1中
  28. print_r($redis->sMembers("temp1"));// Array ( [0] => Lakers [1] => Spurs )
  29. echo "
    ";
  30. print_r($redis->sUnion($redisKey2, $redisKey3));// 获取指定set的并集 Array ( [0] => Lakers [1] => Warriors [2] => Bulls [3] => Spurs [4] => 76ers [5] => Celtics [6] => Rockets )
  31. echo "
    ";
  32. $redis->sUnionStore("temp2", $redisKey2, $redisKey3);// 获取指定set的并集,并将结果存储在自定义set
  33. print_r($redis->sMembers("temp2"));// Array ( [0] => Lakers [1] => Warriors [2] => Bulls [3] => Spurs [4] => 76ers [5] => Celtics [6] => Rockets )

参考资料:菜鸟教程。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29967.html

相关文章

  • 用Go实现Redis持久化

    摘要:数据持久化到磁盘在的编码中没有使用类似的事件循环,我们在此依赖字段作为标识。变化即为持久化的时机。服务启动加载数据持久化数据从文件加载进内存的方式是模拟客户端执行命令,逐条将文件命令发送给服务端。 写在前面 本文实现的Godis代码版本为:v0.1 Redis持久化方式 RDB持久化 BGSAVE和SAVE命令生成RDB文件,存储数据库信息。当服务器启动,RDB文件也会作为原始数据,加...

    ybak 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<