levelDB数据库使用及实例 - 高性能nosql存储数据库
LevelDB是google公司開發(fā)出來的一款 超高性能kv存儲(chǔ)引擎,以其驚人的讀性能和更加驚人的寫性能在輕量級(jí)nosql數(shù)據(jù)庫中鶴立雞群. 此開源項(xiàng)目目前是支持處理十億級(jí)別規(guī)模Key-Value型數(shù)據(jù)持久性存儲(chǔ)的C++ 程序庫。在優(yōu)秀的表現(xiàn)下對(duì)于內(nèi)存的占用也非常小,他的大量數(shù)據(jù)都直接存儲(chǔ)在磁盤上.可以理解為以空間換取時(shí)間.
任何東西都不是十全十美的,LevelDB也有它的局限性:
LevelDB 只是一個(gè) C/C++ 編程語言的庫, 不包含網(wǎng)絡(luò)服務(wù)封裝, 所以無法像一般意義的存儲(chǔ)服務(wù)器(如 MySQL)那樣, 用客戶端來連接它, 使用者應(yīng)該封裝自己的網(wǎng)絡(luò)服務(wù)器.
node.js下如何使用LevelDB ?
node.js環(huán)境下使用需要npm 包 levelUP,levelDown 來支持. npm install levelUP levelDown 或者你也可以這樣 npm install level 提醒:levelup 版本最好用0.10.0或者更低版本,最新版本和leveldown編譯時(shí)出問題. npm 安裝指定版本依賴包 所以這樣比較安全 npm install levelup@0.10.0 leveldown
如何使用?
api定義非常簡(jiǎn)單. var levelup = require('levelup'); var db = levelup('./yijiebuyi'); //這里的路徑就是物理存儲(chǔ)數(shù)據(jù)的文件路徑,建議不要放到項(xiàng)目中. 下面是常用的獲取,設(shè)置api (引用自 github node-levelup https://github.com/rvagg/node-levelup)
// put a key & valuedb.put('name', 'LevelUP', function (err) { if (err) return console.log('Ooops!', err) // some kind of I/O error // fetch by key 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) }) })一介布衣博客 采用了node.js + leveldb 方式,上面的這個(gè)數(shù)據(jù)庫封裝類也是一介布衣博客使用的一個(gè)通用幫助文件.
關(guān)于levelDB的api我簡(jiǎn)單做了一個(gè)封裝,代碼如下:
//設(shè)置 function put(key, value, callback) { if (key && value) { db.put(key, value, function (error) { callback(error); }) } else { callback('no key or value'); } } //獲取 function get(key, callback) { if (key) { db.get(key, function (error, value) { callback(error, value); }) } else { callback('no key', key); } } //刪除 function del(key, callback) { if (key) { db.del(key, function (error) { callback(error); }) } else { callback('no key'); } } //批量操作 function batch(arr, callback) { if (Array.isArray(arr)) { var batchList = []; arr.forEach(item) { var listMember = {}; if (item.hasOwnProperty('type')) { listMember.type = item.type; } if (item轉(zhuǎn)載于:https://www.cnblogs.com/yijiebuyi/p/4168399.html
總結(jié)
以上是生活随笔為你收集整理的levelDB数据库使用及实例 - 高性能nosql存储数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】oracle存储过程常用技巧
- 下一篇: Lang语言包