朋友的朋友使用案例 - Redis 与图形数据库

4
作为学校任务的一部分,我制作了一个小型社交网络。我们下一个任务是将非关系型数据库功能实现到该项目中。我们被建议使用Redis或ElasticSearch。
对我来说,很明显我可以使用ElasticSearch根据名称等查找人物和组。
但目前我更感兴趣的是创建一个潜在的朋友搜索器,它基于两个用户的共同朋友以及他们所属的群组来建议朋友。
我的问题是:这是否是Redis的一个好用例,还是使用图形数据库会更好?
这是我想象的方式:
- 我有一个名为“users”的已注册用户集合存储在redis中。 - 对于每个用户,我都有一个集合,用于跟踪他们的朋友,例如“user:1:friends”。 - 我还为每个用户存储潜在朋友的SortedSet,例如“user:1:potential”。
假设一个不是我的朋友的用户将我的一个朋友添加到他们的朋友列表中。当发生这种情况时,我将获取我朋友的所有朋友集,并检查我的朋友的新朋友是否是每个集合的一部分。如果不是,则我将增加未与新人成为朋友的朋友的潜在朋友集合中分配给他的id的分数。
总的来说,这对我来说似乎是很多工作,这就是为什么我不确定这是否是一个好主意。所以再次提问-像这样的东西图形数据库会更好吗?
1个回答

1

考虑到您需要实现任何内容(包括设置无SQL数据库),我肯定会选择图形数据库。朋友的朋友(以及更一般的建议)是这种类型数据库的基本用例。这是它们展示全部潜力的地方。我建议您查看Neo4J:http://neo4j.com以及他们的社交网络用例:http://neo4j.com/use-cases/social-network/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接