Articles of leveldb

levelup:get()需要键和callback参数 – 没有Promise?

levelup文档声称get() , put()等将返回一个Promise如果调用没有callback: https : //github.com/Level/levelup#promises 我有以下代码: db.get(gameName).then(JSON.parse).then( 但我的then()函数永远不会被调用。 该代码运行时不会崩溃,但在控制台中收到以下消息: get() requires key and callback arguments 我错过了什么吗? 也许依赖? 我愿意把get()和put()放在我自己的Promise中,但是如果它已经存在,重写这样的function似乎很愚蠢。

数据库连接完成后呈现 – Nodejs LevelDB

我是Nodejs,Express和Leveldb的新手。 我使用级别创build数据库,并希望传递参数。 exports.index = function(req, res) { var models_array = []; db.models.createValueStream() .on('data', function (data) { console.log(data.name); models_array.push(data.name); console.log(models_array); // 1st }); console.log(models_array); //2nd res.render('home', { title: 'Home', models:models_array }); }; 这是我的代码,但第二个console.log(models_array)返回null,因为它们是asynchronous运行。 即使第一个console.log正在返回我所期望的。 如何使这个工作正常? 这样我可以将适当的数据传递给模板。

无法find有效的方法倾销leveldb平面文件(S)

我使用LevelDB作为本地进程的一部分,当完成时,它拥有大约10-100万个JSON条目。 我需要将这些文件转换为可移植的格式,最好是将一个或多个csv(甚至是行分隔的json)文件导入到一个单独的mongodb系统中。 我在node.js中做了一个快速testing,将数据库内容传输到一个文件(使用node-levelup) ,在我的机器上花费了大约18.5分钟,处理1000万对,看起来很慢。 寻找leveldb快速转储/导出的build议。 我已经考虑使用mongodb作为本地处理的存储,因为mongoexport更快,但是在安装过程中会有更多的开销,因为我需要几个分片来获得更多的写入速度。

使用search索引进行过滤

我想实现* .epub-Files的全文search。 所以我分出了epub-full-text-search模块( https://github.com/friedolinfoerder/epub-full-text-search )。 我会有很多电子书进行search,所以我想有一种方法,只能在一个特定的电子书search一次。 我怎么能用search-index来做到这一点。 我编写了一个解决scheme,允许在字段中search文件名 (epub的唯一文件名)和正文 (章节的内容),但是这并不认为这是正确的方式来做到这一点,性能也不理想。 以下是我如何使用search-index进行search的一个示例: searchIndex.search({ query: [{ AND: [ {body: ['epub']}, {filename: ['accessible_epub_3']} ] }] }); 有一个更好的方法吗。 也许有桶,类别和filter? 谢谢你的帮助!

在Windows / Node 0.8下工作的Node.js的键值存储

我正在开发一个需要快速,embedded式和持久性键值存储(如LevelDB)的项目,但开发环境仅限于Windows 7 / Node 0.8。 我的自然反应是尝试find一个LevelDB绑定,但是LevelUP / my8bird的leveldb根本不能在Windows下编译,LevelDOWN只能用于Node.js> 0.10。 有任何想法吗? 它不必是LevelDB,只要是具有持久性和合理的崩溃容忍度的embedded式(无服务器)键值存储,就可以在该环境下使用Node.js绑定。

如何使用Node.js创buildmultithreading应用程序,访问LevelDB?

在LevelUP文档中有这个( https://github.com/rvagg/node-levelup#multi-process-access ): LevelDB是线程安全的,但不适合用多进程访问。 您应该只能从单个Node.js进程打开一个LevelDB数据库。 Node.js集群由多个进程组成,因此LevelUP实例不能在它们之间共享。 所以我不能使用Node Cluster( http://nodejs.org/api/cluster.html ) 是否有另一个选项可以使多进程(或multithreading)Node.js应用程序访问LevelDB数据库?

Node.js最快,非基于内存的多进程键值存储

什么是支持多进程的Node.js最快的非内存键值存储? 我需要存储简单的键值string/string对(不是文档或JSON,只是string)。 这里有一些例子(其中会有数百万): 12345678 – abcdefghijklmnopabcdefghijklmnop 86358098 – ahijklmnopbcdefgahijklmnopbcdefg abcdefghijklmnopabcdefghijklmnop – 12345678 ahijklmnopbcdefgahijklmnopbcdefg – 86358098 我努力了: Redis :它真的很快,可以满足我所需要的一切,但是却消耗了太多的内存。 LevelDB :在RAM上它速度快而且不重,但只有单进程。 LevelDB的解决方法是多级的 ,通过HTTP公开单个LevelDB进程。 但是这当然是有代价的。 我需要快点。 有没有关键价值的商店: 支持Node.js或具有绑定; 存储string/string对; 支持多个进程; 不完全驻留在内存中; 快吗? 我只在乎阅读。 快速的多进程阅读是必要的,但不能写。 我对LevelDB的当前速度感到满意,而不是单一进程的事实。 额外细节: 我正在谈论大约五千万个键/值对,键和值在8到500个字符之间。 代码将运行在一个普通的Linux服务器上。 内存使用量应该限制在几千兆字节(4GB是好的,8GB是可以接受的) 阅读的方式不仅仅是写作, 其实,我可以不写文章。 速度比任何事情都重要(考虑到内存和多进程约束)。