讲师中心 微信公众号
AI工具推荐 视频效率加速

Redis Set集合实现好友推荐_利用SINTER寻找共同关注集合

大萱姑娘_6364

大萱姑娘_6364

发布时间:2026-05-07 09:05:36

|

399人浏览过

|

来源于php中文网

原创

能,SINTER可直接计算共同关注,但需确保所有关注列表为SET类型、key命名规范、成员格式一致;若返回空需检查类型、数据格式及写入命令是否正确。

redis set集合实现好友推荐_利用sinter寻找共同关注集合

Redis SINTER 能直接算出共同关注吗?

能,但必须确保所有用户关注列表都用 SET 存储,且 key 命名有规律(比如 user:123:follows)。SINTER 本身不关心语义,只做集合交集运算——它把传入的多个 key 当作 set,逐个取交集,返回共有的成员。如果某用户没关注任何人,对应 key 不存在或为空,SINTER 结果就是空。

常见错误现象:SINTER user:101:follows user:102:follows 返回空,但你知道他们确实都关注了 user:200。这时要检查:
• user:101:follows 和 user:102:follows 是否真为 SET 类型(用 TYPE 命令确认)
• 成员是否以字符串形式存入(比如存的是整数 200 还是字符串 "200",类型不一致会导致匹配失败)
• 是否误用了 LPUSH 或 HSET 写入,导致实际是 list 或 hash

怎么用 SINTER 推荐“可能认识的人”?

核心思路:对目标用户 A,找出他所有关注的人(比如 5 个),再对这 5 个人各自的 :follows 集合做并集(SUNION),最后剔除 A 自己已关注的、以及 A 自身 ID,剩下就是候选推荐池。但这里 SINTER 不是直接用于推荐,而是用于“找共同兴趣圈”——比如你和好友 B 都关注了 3 个相同账号,那 B 的其他关注就值得推给你。

实操建议:
• 先用 SINTER user:A:follows user:B:follows 算出共同关注数,作为亲密度权重
• 若结果 ≥ 3,再执行 SDIFF user:B:follows user:A:follows 拿到 B 独有、A 还没关注的人
• 把多个高权重好友的 SDIFF 结果用 SUNIONSTORE 合并,再用 SRANDMEMBER 随机取若干个返回
• 注意避免循环推荐:B 推 C,C 又推 B,可在合并前用 SREM 删掉当前用户已关注的所有 ID

redis-tools
redis-tools

按类别查找Redis命令、检测服务器连接、监控键数量和内存占用,支持离线速查表。

下载

性能瓶颈在哪?SINTER 大集合会卡住 Redis 吗?

会。Redis 是单线程处理命令,SINTER 时间复杂度是 O(N×M),N 是 key 个数,M 是最小集合的元素数。如果让用户 A 和 100 个好友做 SINTER,而其中最小集合有 10 万关注者,操作可能耗时数百毫秒,阻塞后续请求。

缓解方案:
• 不直接对“全部好友”计算,改用抽样:随机选 3–5 个高活跃/高相似度好友参与 SINTER
• 把高频计算结果缓存:例如 sinter:u101:u202 存 1 小时,用 EXPIRE 控制
• 改用服务端聚合:用 SCAN + 客户端内存计算替代多 key SINTER,尤其适合离线推荐任务
• 避免在主从同步延迟高的从节点上执行,SINTER 必须走 master

为什么推荐结果总是重复或冷门?

根本原因不是 SINTER 本身,而是数据建模偏差。比如只用“共同关注数”排序,没加权过滤:
• 大 V(如官方账号)被万人关注,和任意两人交集都很大,但推荐价值低 → 应提前用 SCARD 统计各关注者的粉丝量,对高频成员降权
• 新注册用户关注少,SINTER 结果为空 → 需 fallback 到标签匹配或地域推荐
• 所有 :follows 集合都未做 TTL,僵尸账号长期滞留 → 建议对超过 90 天未登录用户的 follow 集合执行 DEL

真正容易被忽略的一点:Redis 的 SINTER 返回结果无序,也不支持分页。如果一次要推荐 20 人,但 SINTER 返回 5000 个,后续还得靠客户端去重、过滤、打分、截断——这部分逻辑不能省,也不能丢给 Redis 做。

热门AI工具

更多
AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

6719

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3245

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

4208

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

2865

2025.08.29

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4649

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4215

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7952

2024.04.02

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

643

2024.04.07

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

100

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn