对于一个项目,我正在创建一个排队库,基本上将URL存储在一个Set中(它实际上是一个对象,我将键设置为true,但是可以将其视为一个数组),因此队列只接受每个url一次。这非常有效,但我遇到的问题是有很多URL,因此RAM的使用率非常高。
因此我想使用磁盘上的键值存储(实际上只需要密钥,不知道是否有不同的方法),具有以下要求:
它不必太安全(偶尔丢失数据不是一个大问题,低RAM要求更重要),即使我在这种情况下使用Node.JS这个查找不一定需要运行异步。
实际上,一个侧面问题是,是否有一种比磁盘键值方法更好的方法。一个术语会很好。 Lookuptables总是让我找到数据集(IP,邮政编码等)
答案 0 :(得分:0)
我使用带有单列的sql表(用于存储url)。比redis更好地控制内存使用(它几乎全部存储在内存中)。
答案 1 :(得分:0)
如果真的“不必太安全”,另一种设计是将所有内容存储在内存中,但限制存储的URL数量,例如使用LRU缓存。
您可以在node.js中使用缓存(很容易找到via Google),也可以在同一台计算机上使用单独的memcached服务器。