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

《MinDB:国内高中生的开源JavaScript数据库项目》
让你能够在 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) {
    return min.hmset('user-' + curr, {
      name: 'Will Wen Gunn',
      id: 'iwillwen',
      email: 'willwengunn@gmail.com'
    });
  })
  .then(function(key) {
    var id = key.substr(5);

    return min.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 也支撑多数据库:

var Min = min.fork();
Min.set('foo', 'bar')
  .then(/*...*/)
  .fail(/*...*/);

Store Interface

请浏览 Store Interface 文档.

更多信息,能够浏览其项目的申明

    原文作者:JeOam
    原文地址: https://segmentfault.com/a/1190000000355949
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞