leveldb&levelup中文文档简介

image.png


文章目录



levelup


LevelDB是一个Google构建的简单的k-v数据库.
在Google Chrome和其他产品中被使用.
LevelDB支持抽象字节数组作为键和值,单一get, put 和delete操作,批处理的put 和delete操作,双向迭代和使用快速Snappy
算法进行简单压缩.

LevelDB存储按照键的字母顺序进行排序的条目.
这种构造levelup的流接口,
奠定了levelup作为可读流的迭代器一个十分有效的查询机制.

leveldown是提供了存C++链接到LevelDB的存储器.
有很多交替存储是可用的,
如在浏览器中的level.js,或者是内存存储的memdown.他们的键和值基本上之处字符串和Buffers类型,
对于更丰富的数据类型集,你可以使用encoding-down来封装该存储.



支持的平台


我们的目的是支持可用的LTS和当前的node.js以及浏览器.
为了支持下面的存储,请查看相应的文档.
image.png



使用


首先安装

npm install levelup leveldown

所有操作都是异步的,如果你没有提供回调函数,那么将返回一个Promise

var levelup = require('levelup')
var leveldown = require('leveldown')

// 1) Create our store,创建存储器
var db = levelup(leveldown('./yijiebuyi'))

// 2) Put a key & value,存储键 & 值
db.put('name', 'levelup', function (err) {
 if (err) return console.log('Ooops!', err) // some kind of I/O error

 // 3) Fetch by key,通过键name获取值levelup
 db.get('name', function (err, value) {
   if (err) return console.log('Ooops!', err) // likely the key was not found

   // Ta da!
   console.log('name=' + value)
 })
})



新版本支持Promise


每一个接受回调函数的函数,在回调函数被省略时返回promise

  • db.get(key[, options])
  • db.put(key, value[, options])
  • db.del(key[, options])
  • db.batch(ops[, options])
  • db.batch().write()

返回promise示例:

 var db = levelup(leveldown('./yijiebuyi'))

db.put('foo', 'bar')
  .then(function () { return db.get('foo') })
  .then(function (value) { console.log(value) })
  .catch(function (err) { console.error(err) })

也可以用 async/await模式

const main = async () => {
 const db = levelup(leveldown('./yiejibuyi'))

 await db.put('foo', 'bar')
 console.log(await db.get('foo'))
}

事件

image.png


安全

像LevelDB的存储器是线程安全的,但是当访问多进程时它是不适用的.
你应该只从单Node.js进程打开该存储.
Node.js集群由多进程组成,所以levelup实例也不能够在他们之间共享

出自:leveldb&levelup中文文档简介

回到顶部