node.js的进程内持久键值存储

我需要在一个node.js应用程序中存储一些元数据。 而不是拿出我自己的文件格式和pipe理该文件,我想使用一个进程内持久性键值存储。

我在看mongodb,但似乎mongodb必须始终运行在外(也就是说,您需要先启动一个mongo服务器,然后在node.js.中连接到它)。我要求无论存储什么东西,它完全存在于node.js过程中 – 或者至less任何外部进程完全由库来pipe理,并在应用程序closures连接时将其杀死。

我并不关心性能,但是支持asynchronousIO到存储以跟上Node的整个asynchronous情况是很好的。

如果商店支持索引,那也不错,因为我肯定会以索引有用的方式查询数据。

我非常确定,'sqlite'对我来说是有效的,除了我不认为它像键值存储一样方便。 理想情况下,我应该能够用JSON说话,而不是SQL。 但是,如果没有更好的存在,sqlite将工作。

谢谢!

您可能有兴趣使用redis http://redis.io/

节点https://github.com/mranney/node_redis有一个stream行的助手库

那么你可以这样做:

var redis = require("redis"); var client = redis.createClient(); client.set("foo_rand000000000000", "OK"); 

看看https://github.com/sergeyksv/tingodb 。 它与MongoDB API密切相容,所以你可以在需要时升级到MongoDB。

尝试nStore。
https://github.com/creationix/nstore

它在进程键值存储中。 简单使用以及。

我想你可能对final-db感兴趣。

FinalDB使用文件系统来存储它的数据。 这不是键值存储,而是基于文档的 nosql解决scheme。 它支持索引(地图) – 您可以在每个集合上指定地图function ,当然这是一个在线解决scheme。

看看levelup 。 这是leveldb的包装。 levelup包装程序通过npm安装leveldb,并完全在您的节点进程中运行。

在leveldb之上build立了许多数据库。 看看https://github.com/rvagg/node-levelup/wiki/Modules列表。

为了方便起见,您可以使用将levelup和leveldown捆绑在一起的级别包

怎么样…

 var store = { }; //store 'myKey' store.myKey = { foo: 'bar' }; //fetch 'myKey' var x = store.myKey; 

此外,谷歌几乎完全是你的问题标题,你会发现http://pgte.github.com/alfred/

我真的不觉得有很多特别稳定的可用。 虽然外部产品是相当不错的(例如Redis)