我应该在下面的用例中使用Redis或Neo4J吗?

2024-04-24 05:46:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个社交网络,每个用户有3个不同的配置文件-配置文件1,配置文件2和配置文件3。你知道吗

这是我的用例:

用户A遵循概要文件1中的用户B、C和D。用户A跟随用户C、F和G在概要文件2中。用户C跟随概要文件3中的用户A和E。你知道吗

另一个问题是,这些配置文件上的任何用户都需要查看他们在各自配置文件(无论是配置文件1、2还是3)上关注的用户的最新或(比如前N个)帖子。你知道吗

我们怎样才能最好地存储上述信息?你知道吗

上下文: 我是c语言,使用Django框架和Postgres数据库来存储用户的配置文件信息。用户的帖子存储在云CDN上并从中检索。你知道吗

实现这些用例的最佳方法是什么,即选择最适合这个场景的技术?可伸缩性是在这里发挥作用的另一个重要因素。你知道吗


Tags: 文件django用户网络框架语言信息数据库
1条回答
网友
1楼 · 发布于 2024-04-24 05:46:52

Neo4J是一个图形数据库,适用于多跳关系搜索。比如说,你想得到A的哥哥的朋友的姐姐的前N个职位。。。好吧,这是一个独立的实例,你不能在几个节点上划分你的数据。否则,两个人之间的关系可能会跨越机器。你知道吗

Redis是一个键值存储,适合按键搜索。假设你想得到A的朋友列表,或者是A的前N个列表。你可以用一个Redis集群在多台机器上分发你的数据。你知道吗

哪个更好?这取决于你的情况。似乎不需要多跳关系搜索。所以Redis可能更好。你知道吗

您可以使用SET保存每个人的好友列表。并使用LIST保存每个人的post id。当您需要为用户A显示posts时,请调用SMEMBERSSSCAN以获取好友列表,然后为每个好友调用LRANGE以获取前N个post id。你知道吗

相关问题 更多 >