好的,所以我一直在对 NoSQL 数据库进行一些研究,它们似乎是我需要的正确选择。然而,问题是,很多这些数据库,如果不是大多数的话,都是从 RAM 读取/写入,而不是磁盘。当您拥有大量服务器资源或不期望大量数据块时,这很好 - 但我认为我应该为最坏的情况做好准备。
我期望从这些数据源收到的数据是每个查询从 25KB 到 150KB 不等 - 是的 - 对于单个键值,最多可达 150KB。普通用户将产生 500 到 5000 个这样的密钥,并且它们可以无限增长(但可能会在 5000 范围内的某个地方停止)。如果您快速进行计算(大部分数据将在 25-150 的较高端,所以我将使用 100KB 作为“平均值”,大多数用户可能会产生 2000-3000 个查询):100KB*3000 - 那就是每位用户 300MB!当您开始获得体面的用户群时,会产生大量数据。因此,最终我可能会丢弃查询中的大部分数据,使其不超过 1KB 左右,但这仍将远远超过大多数 RAM 功能。
所以我认为我正在寻找一种将数据存储到磁盘并将对象缓存在 RAM 中的解决方案。但我对所有解决方案都持开放态度!让我知道你们的想法。我很想保持这件事快速运行......
编辑:
措辞略有不同,以便对路人有用:
如果希望最大化性能但在 NoSQL 数据库中处理大量数据负载,那么推荐的 NoSQL 数据库是什么?我认为它将是将数据存储到磁盘的一种,但这会严重影响性能。那里有“两全其美”的解决方案吗?重要的是要注意我假设,这些记录一旦提交就不会被修改,只会读取(但可能甚至不会经常)。
我一直在研究 Redis 来完成这样的任务,因为它看起来非常易于管理 - 但是它完全在 RAM 中运行,因此需要小数据块,或者多个服务器同时运行多个实例。这是我不知道的可使用。