1

我需要创建一个数据库来处理点击流(来自〜240 个子域)。我使用 Java 脚本来获取每次点击的信息,例如(主机、页面、日期、用户 ID、Referer、HostName、RefererPath、uniqueUserID),然后通过 Java Web 动态应用程序将数据插入数据库。每天大约有 900 万条新记录,我必须每分钟插入新记录。另一个应用程序需要能够检索有关特定文章/子域在最后(10 分钟、20 分钟、30 分钟、1 小时...24 小时)内的浏览量/唯一访问者/等信息。我只需要保留最近 3 个月的记录。

最初我考虑使用 MySQL,因为我只对开源感兴趣。但我正在考虑 NoSQL 解决方案。问题是我只在关系数据库方面有经验,并且无法真正判断 NoSQL 是否会是一个更好的解决方案。如果我选择使用 NoSQL,我应该使用哪个数据库?键值存储是最好的方法吗?

4

1 回答 1

2

我猜这种数据一致性并不重要(统计数据?)所以你确实可以节省一点一致性。NoSQL 似乎是一个不错的选择,并且键值存储也是我的选择。现在真正的问题是:什么是最适合的?

我会考虑 Redis 和 Riak(它们基本上是最著名的):

Riak(AP系统):

Redis(CP系统):

  • 真快
  • 内存:你需要内存!这也意味着您需要复制,这样您就不会在崩溃时丢失所有内容。我相信 Redis 也使用磁盘快照。
  • 具有连任的主/从
  • 根据

两者都有更多的功能,你应该去阅读陷阱的文档。Redis 主要用作缓存,因为它速度快,而 Riak 专注于容错。鉴于您的可扩展性要求,两者都可以满足您的需求。因此,您必须根据以上内容进行选择。

于 2013-07-10T15:31:57.300 回答