美文网首页
Redis 使用记录(五)

Redis 使用记录(五)

作者: haoyq | 来源:发表于2018-04-29 15:54 被阅读0次

Set(集合)

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

应用场景

统计访问IP

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

联系人、粉丝列表

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

实例

<?php
include 'redis.php';

$redis = getRedis();
$redisKey = 'name_set';
$redisKey1 = 'name_set1';
$redisKey2 = 'team_set';
$redisKey3 = 'team_set1';

$redis->sAdd($redisKey, 'kobe');// 向set中添加成员
print_r($redis->sMembers($redisKey));// 获取set中的所有成员 Array ( [0] => kobe )
echo '<br />';
var_dump($redis->sAdd($redisKey, 'kobe'));// 因为set具有成员唯一性,所以这个添加不成功 int(0)
echo '<br />';
$redis->sAdd($redisKey, 'Gasol');
echo $redis->sCard($redisKey) . '<br />';// 获取set中的成员数 2
var_dump($redis->sIsMember($redisKey, 'kobe'));// 当前值是否存在 bool(true)
echo '<br />';
$redis->sAdd($redisKey1, 'kobe', 'fisher', 'iverson');// Array ( [0] => iverson [1] => kobe [2] => fisher )
echo $redis->sPop($redisKey1) . '<br />';// 获取并移除一个随机元素 iverson
print_r($redis->sInter($redisKey, $redisKey1));// 获取指定set的交集 Array ( [0] => kobe )
echo '<br />';
print_r($redis->sDiff($redisKey, $redisKey1));// 获取指定set的差集 Array ( [0] => Gasol )
echo '<br />';
echo $redis->sRandMember($redisKey) . '<br />';// 获取指定数量的随机数,默认为1个 Gasol
var_dump($redis->sRem($redisKey1, 'kobe'));// 删除指定值
echo '<br />';
$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 '<br />';
$redis->sDiffStore('temp1', $redisKey2, $redisKey3);// 获取指定set的差集,并将结果存储在自定义set中
print_r($redis->sMembers('temp1'));// Array ( [0] => Lakers [1] => Spurs )
echo '<br />';
$redis->sMove('temp', 'temp1', 'Rockets');// 将指定值,从temp中移动到temp1中
print_r($redis->sMembers('temp1'));// Array ( [0] => Lakers [1] => Spurs )
echo '<br />';
print_r($redis->sUnion($redisKey2, $redisKey3));// 获取指定set的并集 Array ( [0] => Lakers [1] => Warriors [2] => Bulls [3] => Spurs [4] => 76ers [5] => Celtics [6] => Rockets )
echo '<br />';
$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 )


参考资料:菜鸟教程

相关文章

  • Redis 使用记录(五)

    Set(集合) Set 是 String 类型的无序集合,成员唯一,不会出现重复的数据。Set 最多可以包含 23...

  • redis + node 使用命令记录

    redis + node 使用记录 > set(key,value,redis.print) >expire(ke...

  • 2020-03-24

    Redis学习记录(一)之Redis的简介及安装使用 Redis作为NoSql较为流行使用的数据库之一,个人觉得还...

  • redis 常用命令

    记录一下redis 使用的命令,redis练习命令官网[http://try.redis.io/] 启动停止命令 ...

  • python + redis 操作总结

    一.基本操作 二.redis写入读取数据 三.封装redis辅助类 四.使用redis连接池 五.生产消费模式使用...

  • Redis学习记录(二)--使用Jedis连接

    Redis学习记录(二)--使用Jedis连接 标签(空格分隔): javaWEB 在Java环境中连接Redis...

  • redis使用

    记录使用redis中遇到得问题:1、程序将调用流程得functionId保存在redis中,redis中可能会保存...

  • SparkStreaming之使用redis保存Kafka的Of

    本文主要记录使用SparkStreaming从Kafka里读取数据,并使用Redis保存Offset。 相关文章:...

  • 在centos中安装redis

    记录一下在centos系统下使用源码安装redis的流程 1.配置c++环境 2.使用wget下载redis源码 ...

  • Redis 使用记录(四)

    List (列表) List 是一个简单的 String 列表,按照插入顺序排序。可以添加一个元素到 List 的...

网友评论

      本文标题:Redis 使用记录(五)

      本文链接:https://www.haomeiwen.com/subject/dtbolftx.html