在社交APP中,实现“共同好友”和“可能认识的人”这类关系推算功能,Redis 的集合(Set)和有序集合(Sorted Set / ZSet)是绝佳的工具。因为这类功能在数学本质上就是集合的交集、并集和差集运算。 下面我将从数据建模、功能实现到生产环境优化,一步步为你拆解如何利用 Redis 实现这些功能。 --- 一、 数据建模:如何存储关系? 假设我们的社交关系是双向好友关系(类似微信)。我们为每个用户创建一个 Redis Set,用来存储该用户的所有好友 ID。 Key 设计: Value:好友的 User ID 集合。 添加好友时的操作: 假设用户 A (ID: 100) 和用户 B (ID: 200) 互加好友,你需要向双方的 Set 中添加对方的 ID: --- 二、 功能实现 1:共同好友 “共同好友”的本质就是求两个用户好友集合的交集(Intersection)。 1. 查看共同好友列表 如果你想展示用户 A (100) 和用户 B (200) 的共同好友列表,使用 命令: 2. 查看共同好友数量 如果只需要展示“你们有 5 个共同好友”这样的数字,强烈建议使用...