Neo4j + Redis?好还是坏?

问题描述 投票:0回答:4

我制作了一个具有社交网络功能的音乐应用程序。我希望使用 Neo4j 和 Redis 来支持我的数据库。在 Neo4j 中,我将在 redis 中存储用户信息和所有其他信息(帖子、评论等)。有人对此有什么建议或见解吗?

database redis neo4j
4个回答
5
投票

简短的回答:这取决于。

更长的答案:

我假设您刚刚开始使用该应用程序,并且希望获得快速反馈(如果您想投资(时间/金钱))。

如果您想运行“哪些用户评论了同一首歌曲”之类的查询,您需要将此数据放入 Neo4J 中。一般来说,您拥有的关联数据越多,您可以回答的问题就越有趣。所以我宁愿将数据放入 Neo4j 中。此外,仅查询一个数据库比聚合多个数据库的数据更容易实现。

如果你有足够多的用户,他们产生的数据量开始影响 Neo4j,你可以将实际的评论文本或帖子放入 Redis 中,并通过 Neo4j 的 id 引用它。但到那时您已经知道这是值得做的,并且这是一个相当易于管理的重构和数据迁移。


3
投票

Neo4j 是一个图数据库。但是它不支持分片(水平分区)。使用 Neo4j 的好处是,您可以使用 Neo4j 查询语言轻松存储图数据结构并运行图算法。这对于分析某些社交网络属性可能很有用。不好的是,由于 Neo4j 不支持分片,数据库的容量仅限于单个节点。当数据量增加时,其性能可能会受到影响。

Redis 对于缓存数据总是很有用,这可能是一个不错的选择。


0
投票

恕我直言,我会尝试将所有内容存储在同一个案例中的 neo4j 中。


0
投票

尽管所有内容都可以存储在 Neo4J 中,但您可以使用 Redis 提供的图数据结构将 Redis 中最需要的图和小部分图存储在内存中。从这个意义上说,如果查询是对 Redis 的精确查询,您将能够直接“保存”Neo4J 的点击并给出更快的答案。

© www.soinside.com 2019 - 2024. All rights reserved.