1

对于一个项目,我正在创建一个排队库,并且基本上将 URL 存储在一个 Set 中(它实际上是一个对象,我将键设置为 true,但可以将其视为一个数组),因此队列只接受每个 url 一次。这工作得很好,但是我面临的问题是有很多 URL,因此 RAM 使用率变得非常高。

因此我想使用磁盘键值存储(实际上只需要键,不知道是否有一些不同的方法)具有以下要求:

  • 无需将整个数据集加载到 RAM 中
  • 快速查找
  • Node.js 绑定

它不必太安全(偶尔丢失数据不是一个大问题,低 RAM 要求更重要),即使我在这种情况下使用 Node.JS,这个查找也不一定需要运行异步的。

实际上,一个附带问题是是否有比磁盘键值方法更好的方法。一个术语会很好。Lookuptables 总能让我找到数据集(IP、邮政编码等)

4

2 回答 2

0

如果它真的“不必太安全”,另一种设计是继续将所有内容存储在内存中,但限制您存储的 URL 数量,例如使用 LRU 缓存。

您可以使用 node.js 中的缓存(通过 Google很容易找到)或使用单独的 memcached 服务器,可能在同一台机器上。

于 2013-11-18T06:47:41.250 回答
0

我会使用带有单列的 sql 表(存储 url)。比 redis 更好地控制内存使用(几乎所有内容都存储在内存中)。

  • 易于检查是否已经存在相同的值
  • 易于插入
  • 轻松移除一个元素
于 2013-02-05T22:56:52.223 回答