繁体   English   中英

朋友之友使用案例 - Redis vs Graph Databse

[英]Friends of friends use case - Redis vs a Graph Databse

我建立了一个小型社交网络,作为学校的一部分。 我们的下一个任务是在项目中实现一个使用非关系数据库的功能。 我们被建议去Redis或ElasticSearch。

我很清楚,我可以使用ElasticSearch根据他们的名字等来查找人和组。

但目前我更感兴趣的是建立一个潜在的朋友查找器,根据两个用户的共同朋友和他们所属的团体建议朋友。

我的问题是:这对Redis来说是一个很好的用例,还是将Graph数据库用于这样的事情要好得多?

这就是我想象的方式:

  • 我有一组存储在redis中的名为“users”的注册用户

  • 对于每个用户,我有一个跟踪他们的朋友的Set,例如“user:1:friends”

  • 我还为每个用户存储了一个潜在朋友的SortedSet
    例如“用户:1:潜力”

假设我不是朋友的用户会将我的一个朋友添加到他们的朋友列表中。 当发生这种情况时,我会带走我朋友的所有朋友,并检查我的朋友新朋友是否属于每一组。 如果没有,那么我会在我的朋友朋友的潜在朋友的集合中增加分配给他的id的分数,这些朋友不是新朋友的朋友。

总而言之,这对我来说似乎很多工作,这就是为什么我不确定这甚至是一个好主意。 再说一次 - 图形数据库对于这样的人来说会好得多吗?

考虑到你有任何要实现的东西(包括设置no sql db)我肯定会使用graphDBs。 朋友之友(以及更普遍的建议)是这种类型的DB的基本用例。 这是他们充分发挥潜力。 我建议你看看Neo4J: http ://neo4j.com和他们的社交网络用例: http ://neo4j.com/use-cases/social-network/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM