Erlang 哪一个最适合我的需要-我精神崩溃了

Erlang 哪一个最适合我的需要-我精神崩溃了,erlang,couchdb,cassandra,neo4j,riak,Erlang,Couchdb,Cassandra,Neo4j,Riak,我正在Erlang建立一个Reddit克隆。我正在考虑使用一些ErlangWeb框架,但这不是问题所在 我在选择数据库时遇到问题 它是如何工作的 我有多个专用的Reddit。例子,科学,搞笑,公司,运动。你可以认为它们是红色的。每个子reddit都有类别 用户可以发布以下信息: 头衔, 类别 标签, 描述 类别 未来日期 并添加图片、链接。录像带 与Reddit一样,用户将能够对 故事和评论。评论也将有投票制 如何解决问题 我不知道使用什么样的NoSQL数据库,该网站将有Mysql的可扩展性问题

我正在Erlang建立一个Reddit克隆。我正在考虑使用一些ErlangWeb框架,但这不是问题所在

我在选择数据库时遇到问题

它是如何工作的

我有多个专用的Reddit。例子,科学,搞笑,公司,运动。你可以认为它们是红色的。每个子reddit都有类别

用户可以发布以下信息:

头衔, 类别 标签, 描述 类别 未来日期

并添加图片、链接。录像带

与Reddit一样,用户将能够对 故事和评论。评论也将有投票制

如何解决问题

我不知道使用什么样的NoSQL数据库,该网站将有Mysql的可扩展性问题相信我,它将因此不建议sql将有大约10000-20000个并发连接,如果不是更多的话

现在我需要什么

1用户将转到运动subreddit

他们希望看到未来日期的所有故事,例如NFL类别或足球世界杯类别。他们可能希望看到未来日期的所有故事,表明即将到来的比赛或事件

但由于人们可能会发表垃圾文章,我需要说“按未来日期排序”,然后用超过5票的帖子过滤结果,然后我需要显示最接近的即将发生的事件

因此,如果周末有一场比赛,而下一场比赛又是3周,那么最接近的比赛需要先进行

2所以上面的问题是使用一个数据库

1在subreddit:Sport中查找所有帖子。2查找NFL类别中的所有帖子。3查找所有带有未来日期的帖子。按多数投票对这些帖子进行排序,并显示与今天日期最接近的故事

我认为couchdb看起来是个不错的候选人,但我不确定

但是卡桑德拉、Hbase、Riak和neo4j呢

我想弄明白这件事,快发疯了


我需要能够扩展和处理大量用户的东西。

卡桑德拉应该适合你;用户投票的内容以不同的方式显示,听起来与Digg的做法非常相似,他们完全转向Cassandra

在《卡桑德拉》中,游戏的名字是非规范化。因此,对于每个类别或子Reddit,您将有一行包含帖子。如果您一次查询的故事数量相对较少,那么您可能不需要对帖子信息进行非规范化处理,包括计票本身,而只需进行多重查询。对于较大的批次,您应该将其复制到每个post列中,这样您就不必执行这些额外的GET


如果您使用类似TimeUUID的东西来临时排序列,那么请给我类别X中在今天日期之后无关紧要的所有内容,然后您可以根据投票计数客户端进行排序。为什么不在服务器端排序呢?因为它不能扩展。

MySQL和MySQL前面的Memcached会有可伸缩性问题吗?假设您不必为每个访问者提供完全唯一的数据,这可能是一个好方法,可以避免进入NoSQL荒野。我对Couchdb中的视图系统有点不清楚。我知道我可以构建多个视图来对相同的数据进行排序。但这种观点有多复杂?视图1能否在subreddit:Sport中找到所有帖子。2查找NFL类别中的所有帖子。3查找所有带有未来日期的帖子。按多数投票对这些帖子进行排序,并显示与今天日期最接近的故事。我是否必须为每个子Reddit定义一个视图?因为我将有大约25000个subreddit。用户可以在reddit中创建自己的reddit和类别。您不必为每个类别定义单独的视图。Subreddit应该是发出的键的第一个元素,因此您只能在请求中使用from-to字段选择一个。但是,对于每个不同的排序,您必须有一个单独的视图,不包括升序/降序。