【发布时间】:2012-06-19 05:31:53
【问题描述】:
好的,所以我一直在对 NoSQL 数据库进行一些研究,它们似乎是我需要的正确选择。然而,问题是,很多这些数据库,如果不是大多数的话,都是从 RAM 读取/写入,而不是磁盘。当您拥有大量服务器资源或不期望有大量数据块时,这很好 - 但我认为我应该为最坏的情况做好准备。
我希望从这些数据源收到的数据是每个查询从 25KB 到 150KB 不等 - 是的 - 对于单个键值,最多可达 150KB。普通用户将产生 500 到 5000 个这样的密钥,并且它们可以无限增长(但可能会在 5000 范围内的某个地方停止)。如果您快速进行计算(大部分数据将在 25-150 的较高端,所以我将使用 100KB 作为“平均值”,大多数用户可能会产生 2000-3000 个查询):100KB*3000 - 那是每位用户 300MB!当您开始获得体面的用户群时,会有疯狂的数据量。因此,最终我可能会丢弃查询中的大部分数据,使其不超过 1KB 左右,但这仍将远远超过大多数 RAM 容量。
所以我认为我正在寻找一种将数据存储到磁盘并将对象缓存在 RAM 中的解决方案。但我对所有解决方案持开放态度!让我知道你们的想法。我很想保持这个东西运行快速...
编辑:
措辞略有不同,以便对路人有用:
如果希望在 NoSQL 数据库中最大化性能但处理大量数据负载,那么推荐的 NoSQL 数据库是什么?我认为它将是将数据存储到磁盘的一种,但这会严重影响性能。那里有“两全其美”的解决方案吗?需要注意的是,我假设这些记录一旦提交就不会被修改,只会读取(但可能不会经常)。
我一直在研究 Redis 来完成这样的任务,因为它看起来非常易于管理 - 但是它完全在 RAM 中运行,因此需要小的数据块,或者同时运行多个实例的多个服务器。这是我无权访问。
【问题讨论】:
-
我应该投票结束这个“不具建设性”,因为根据faq,购物清单对于 SO 来说是题外话。这个问题很有趣;你能稍微换个说法吗?
-
@Ben 你确定这违反了常见问题解答吗?关于什么是最好的“某事”的问题是题外话,因为最好是主观的。但在这里,问题询问的是一个符合非常具体要求的 NoSQL 数据库。这些要求没有任何主观性。
-
@Pablo,“我应该使用什么 NoSQL 数据库?”;我认为这是一个边缘案例和一个有趣的问题,所以我要求 OP 重新措辞以避免它被关闭:-)。