基于bitcask日志模型的k-v数据库有多个实现,比如豆瓣db, riak里的,nodejs也有一个140代码的简单实现(node-cask),我这里实现的目的是,我需要在nodejs中找到一个简单的, 方便,完全异步的kv存储机制,不需要跨服务器分布式系统,类似于sqlite那样的就好了,基于以上,就用纯nodejs实现了一个
主要特点是
1. 完全异步,这个和node-cask项目不同
2. 没用除了nodejs自带module外的任何module
3. 数据log文件采用文本方式,可以直接用文本编辑器打开看以及一定的编辑
var yesdb = require('./yesdb');
var db = yesdb.opendb('xxx');
// 在这里并没有真正执行,而是当数据库打开完毕后才执行
db.set('abc', 'defx神马', function () {
console.info('set item ok');
});
// 在这里并没有真正执行,而是当数据库打开完毕后才执行
db.get('abc', function (err, v) {
console.info('get value', v);
});
// 正常情况下应该先执行这句
console.log('This statement should be executed before db operations');
目前还有一些功能没有完成, 比如key的删除,log文件的整理,还有hint 文件等,会慢慢加上。有条件也要作benchmark.
开源地址在 https://github.com/superisaac/node-yesdb
分享到:
相关推荐
该项目在NodeJS中实现了原始的webShark API,从而改善了其功能和输入方法,以支持PCAP存储后端API,例如Stenographer等。指示将您的PCAP内容目录挂载到位置/captures并启动webshark使用Compose运行docker-compose ...
node-websocket-client, NodeJS的Web Socket客户端 一个 Prototype Web Socket 客户端实现 node.js 。测试 miksago/node-websocket-server v1.2.00.需要 nodejs 0.1.98或者更高版本。安装按如下方式使用 np
sketch-node-parser, 使用纯NodeJS从草图中解析文件 sketch-node-parser使用纯NodeJS从草图中解析文件。这个项目只是一个 proof-of-concept,并没有准备好使用。摘要这个程序演示如何打开一个草图文件,并将它解析为...
NodeJS Modbus到WebSocket的桥接 通过网络浏览器控制启用了Modbus的arduino项目,烤面包机或机器人。 modbus-ws服务器允许浏览器使用Websocket连接到Modbus设备。 当服务器运行并连接到串行线或以太网时,Web...
节点视频时长NodeJs模块,用于检索视频/音频资产的持续时间。 需要安装ffprobe二进制文件。安装$ npm install --save node-video-duration用法 const getVideoDuration = require ( 'node-video-duration' ) ;...
是一个开源、跨平台的JavaScript 运行时环境,可以在浏览器之外执行 JavaScript 代码。 Node JS 的创建者 Ryan Dahl 是一名软件工程师,也是 Node.js JavaScript 运行时的原始开发人员。 如何避免回调地狱? 有很多...
vue-nodejs-elementUI-mysql-express-demo vue+nodejs前后端分离项目,学习使用,包含基本的入门操作。包括从开始创建项目到最后部署的实现过程及过程中遇到的一些问题整理。 项目预览地址: 评论讨论地址: 数据库...
标题中的“node-v12.18.3-x64_nodejs_Node.js_”指的是Node.js的一个特定版本,即v12.18.3,适用于64位操作系统。Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码...
节点翻译 一个包含NodeJS 翻译库安装要构建本地版本以供使用或开发: git clone git@github.com:thestonefox/node-translate.gitcd node-translatenpm install安装为节点模块: npm install node-translate --save...
银行假日帮手 一个用于获得银行假期的 NodeJS 库。 此模块可让您列出特定年份和特定国家/地区的所有银行假期。特征: 非常简单的API 支持以下国家:FR、GB安装使用安装: npm install bankholiday如何使用(以FR国家...
一个NodeJS模块来访问Fetchr API 安装 npm install fetchr - api -- save 用法 var Fetchr = require('fetchr-node-client')({ username: 'dummy', password: '123456789', serviceType: 'delivery', ...
这是一个绿色傻瓜版,适合新入门学习的人。 将压缩包解压后的放置在该目录下: D:\DevTools\Nodejs\ 然后双击运行: Nodejs环境设置.bat 以下可以通过 cmd 进行个性化设置(选做,建议设置一下): npm config ...
no-express-api:简单的nodejs服务器,无需使用oracle数据库即可使用express
node-imagemagick-native, NodeJS的ImageMagick绑定的Magick node-imagemagick-native/of 节点的Magick 绑定的 。功能C/C Magick 库的本机绑定异步。同步。流和承诺 API支持 convert,identify,composite 和其他实
node-opcua是完全用Typescript为NodeJS编写的OPC UA堆栈的实现。 是在上运行的OPC-UA堆栈。 为什么选择NodeJS? 因为nodeJs是设计异步应用程序的绝佳框架。 入门 将node-opcua安装为节点软件包 $ mkdir mytest $ ...
适用于Node的PDFLaTeX包装器 安装 npm install node-pdflatex 用法 pdflatex获取乳胶源并返回缓冲区的承诺。 import pdflatex from 'node-pdflatex' const source = ` \\documentclass{article} \\begin{document...
标题中的“node-v12.16.2-x64.rar”指的是Node.js的一个特定版本,12.16.2,适用于64位操作系统。这个版本是通过RAR压缩格式提供的,RAR是一种流行的文件压缩格式,它允许用户将多个文件打包成一个单一的可下载文件...
文件 "node-v18.16.0-x64.msi" 是一个 MSI 安装包,用于在 Windows 系统上便捷地安装 Node.js。 在 Node.js v18.16.0 中,你可以期待以下关键特性: 1. **V8 引擎升级**:每个新版本的 Node.js 都会包含 Google V8...
思路:温湿度计通过MQTT协议连接到IoT套件,规则引擎针对数据上报Topic配置转发到函数计算(FunctionComputer)中编写好的函数pushData2DingTalk,函数Nodejs脚本处理数据,post到钉钉群机器人的Webhook,配置了温湿度...
api示例 —— 使用 NodeJS 和 HapiJS 的 API 示例 —— 系统要求: NodeJS, npm - https://nodejs.org/ ...可选的 Windows 实用程序: ...安装节点模块: 1....> cd <path>/git/api-... > node server.js navigate to ht