redis计算集合的交/并/差集

require_once '../../CacheRedis.php';

$server = '127.0.0.1:6379';
$redis = CacheRedis::getInstance($server);

$key1 = 'set:1';
$key2 = 'set:2';
$key3 = 'set:3';

$res = $redis->sAdd($key1, 1, 2, 3, 4);
$res = $redis->sAdd($key2, 2, 3, 4);
$res = $redis->sAdd($key3, 3, 4, 5, 6);
$redis->expire($key1, 5);
$redis->expire($key2, 5);
$redis->expire($key3, 5);

// 集合间操作

// sinter: 求多个集合的交集
$res = $redis->sInter($key1, $key2, $key3);
var_dump($res);

// sunion: 求多个集合的并集
$res = $redis->sUnion($key1, $key2, $key3);
var_dump($res);

// sdiff: 求多个集合的差集(第一个集合 - 其他集合, 也就说,结果是返回第一个集合中特有的元素)
$res = $redis->sDiff($key1, $key2, $key3);
var_dump($res);

$key1_store = 'set:s:1';
// sinterstore: 计算交集并将结果保存 ps: sUnionStore sDiffStore
$res = $redis->sInterStore($key1_store, $key1, $key2, $key3);
var_dump($res);
$res = $redis->sMembers($key1_store);
var_dump($res);

// ps: 集合间的运算都比较耗时,所以,在数据量非常大的情况下,一般都是异步使用(脚本预热数据等方式), 使用store命令将结果缓存下来,使用的时候不需要实时计算,直接从缓存中取

推荐: redis基础&实战教程

精选应用推荐

安全便捷的密码管理工具
安全加密 跨设备同步 一键填充 免费使用
云幻梦密码本 - 安全密码管理
★★★★★
4.8 (12万+评价)
云幻梦密码本是一款专业级密码管理工具,采用银行级加密技术保护您的所有密码和个人信息。支持跨设备同步、一键自动填充、安全密码生成和生物识别登录等功能,让您的数字生活更加安全便捷。
应用截图
📦 68.5 MB
🔄 版本 2.5.1
📱 Android 8.0+
500万+下载

资源搜索推荐

一站式资源搜索平台
资源搜索 多源聚合 免费使用 无广告
千搜123 | 资源搜索
🔍
智能搜索
📁
多类资源
快速响应
🛡️
安全访问
千搜123是一个强大的资源搜索网站,聚合了多种资源搜索引擎,提供文档、软件、影视、音乐、学习资料等多种资源的快速搜索服务。界面简洁无广告,搜索结果精准,是您寻找各类资源的得力助手。
  • 聚合多个优质资源搜索引擎,一站式搜索
  • 支持文档、软件、影视、学习资料等多种资源类型
  • 界面简洁,无干扰广告,专注搜索体验
  • 搜索结果快速准确,节省您的时间
🌐 网站访问
无需下载
📅 持续更新
👨‍💻 免费服务

0 评论
最新
最旧 最多投票
内联反馈
查看所有评论
滚动至顶部