MinDB:国内高中生的开源JavaScript数据库项目

简介: 让你可以在 JavaScript 中对你的应用数据进行存储和操作。MinDB 提供一个标准的存储接口(Store Interface)和 Redis 风格的 API,你可以在任何 JavaScript 环境中使用。

image.png

让你可以在 JavaScript 中对你的应用数据进行存储和操作。

MinDB 提供一个标准的存储接口(Store Interface)和 Redis 风格的 API,你可以在任何 JavaScript 环境中使用。


它在 Github 上的项目主页是:https://github.com/iwillwen/mindb

据项目作者的微博资料, 他是广州石门中学的高中生,1996年出生。(编辑不得不注:后生可畏!!)


安装

普通script标签引入:

<script style="text/javascript"src="/path/to/script/min.js">

通过 Node.jsnpm 安装:

$ npm install min

如果你正在使用 SeaJS,你可以通过 spm 进行安装:

$ spm install iwillwen/min

如果你喜欢 component,你也可以使用它进行安装:

$ component install iwillwen/mindb

或者 bower?:

$ bower install mindb

基本使用方法

基本的键值存储可以通过SETGET等命令操作:

min.set('foo', 'bar', function(err) {

 if (err) {

   return console.error(err);

 }

 min.get('foo', function(err, value) {

   if (err) {

     return console.error(err);

   }

   console.log(value); //=> bar

 });

});

基本方法

  • set 对指定键设置数据 (key, value[, callback])
  • setnx 当指定键不存在时,对其设置数据 (key, value[, callback])
  • setex 对指定键设置数据,并设置生命周期 (key, seconds, value[, callback])
  • psetex 对指定键设置数据,并设置以毫秒为单位的生命周期 (key, millseconds, value[, callback])
  • mset 批量对指定键设置数据 (plainObject[, callback])
  • msetnx 当一批指定键全部不存在时,批量对其设置数据 (plainObject[, callback])
  • append 在指定键后插入值 (key, value[, callback])
  • get 获取指定键的值 (key[, callback])
  • mget 批量获取指定键的值 (keys[, callback])
  • getset 对指定键设置数据并返回其之前的值 (key, value[, callback])
  • strlen 获取指定键值的长度 (key[, callback])
  • incr 将指定键中储存的数字值增一 (key[, callback])
  • incrby 将指定键中储存的数字值增加若干量 (key, increment[, callback])
  • incrbyfloat 将指定键中储存的浮点值增加若干量 (key, increment[, callback])


Hash, List, Set, Sorted Set

你或许可以在 Redis 的官方网站中得到启示。


语法糖(Syntactic sugar)

不喜欢嵌套回调?你或许会喜欢 Promise:

min.incr('user_id')

 .then(function(curr) {

   returnmin.hmset('user-' + curr, {

     name: 'Will Wen Gunn',

     id: 'iwillwen',

     email: 'willwengunn@gmail.com'

   });

 })

 .then(function(key) {

   varid = key.substr(5);

   returnmin.sadd('user-msg-' + id, 'WelCome!');

 })

 .then(function(length) {

   // ...

 })

 .fail(function(err) {

   console.log(err);

 });

还不行?不需要依赖?那么来看看MULTI吧:

min.multi()

 .incr('msg-seq')

 .incr('msg-seq')

 .incr('msg-seq')

 .exec(function(err, results) {

   if (err) {

     return console.error(err);

   }

   console.log(results); //=> [ [ 1 ], [ 2 ], [ 3 ] ]

 });

MinDB 也支持多数据库:

varMin = min.fork();

Min.set('foo', 'bar')

 .then(/*...*/)

 .fail(/*...*/);

Store Interface

请阅读 Store Interface 文档.

相关文章
|
9月前
|
关系型数据库 MySQL 数据库
MyEMS开源系统安装之数据库
本文详细讲解MyEMS的安装步骤,重点介绍数据库架构与脚本部署。MyEMS支持MySQL 8.0、MariaDB 10.5及SingleStore 7.0等数据库服务器。通过命令行或客户端工具执行SQL脚本完成安装,包括多个数据库(如myems_billing_db、myems_energy_db等)。此外,提供解决常见问题的方法,如“用户拒绝访问”、“COLLATE设置”和“MAX_ALLOWED_PACKET错误”。注意,不建议在生产环境中将数据库安装于Docker容器内。
272 1
|
10月前
|
人工智能 运维 关系型数据库
|
10月前
|
SQL 人工智能 数据可视化
16.1k star! 只需要DDL就能一键生成数据库关系图!开源神器ChartDB让你的数据结构"看得见"
ChartDB是一款开源的数据库可视化神器,通过一句智能查询就能自动生成专业的数据库关系图。无需安装客户端、不用暴露数据库密码,打开网页就能完成从数据建模到迁移的全流程操作,堪称开发者的"数据库透视镜"。
2215 67
|
11月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
592 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
9月前
|
SQL 关系型数据库 分布式数据库
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
2879 21
|
9月前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
458 4
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB开源:云原生数据库的新篇章
阿里云自研的云原生数据库PolarDB于2023年5月正式开源,采用“存储计算分离”架构,具备高性能、高可用及全面兼容性。其开源版本提供企业级数据库解决方案,支持MySQL、PostgreSQL和Oracle语法,适用于高并发OLTP、核心业务系统等场景。PolarDB通过开放治理与开发者工具构建完整生态,并展望更丰富的插件功能与AI集成,为中国云原生数据库技术发展贡献重要力量。
739 17
|
10月前
|
JavaScript 安全 前端开发
关于Node.js,一定要学这个10+万Star项目 !!
一篇关于Node.js的宝藏项目——Node.js Best Practices。该项目在GitHub上已有102k Star,汇集了100+条最佳实践,涵盖架构、安全、性能等多方面。每条实践不仅有简明说明和详细解释,还附带代码示例及资源链接。文中通过三个实战案例(利用CPU多核、避免阻塞事件循环、使用中间件处理错误)展示了其实际应用价值,并推荐了几条对前端转Node.js开发者特别有用的最佳实践。强烈建议每位Node.js开发者学习此项目,理解“怎么做”与“为什么要这么做”,以提升开发能力。
369 3
|
5月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
439 158
|
5月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。