MinDB:國內高中生的開源JavaScript數據庫項目

請輸入圖片描述
讓你能夠在 JavaScript 中對你的應用數據進行存儲和操做。javascript

MinDB 提供一個標準的存儲接口(Store Interface)和 Redis 風格的 API,你能夠在任何 JavaScript 環境中使用。java

它在 Github 上的項目主頁是:https://github.com/iwillwen/mindb
據項目做者的微博資料, 他是廣州石門中學的高中生,1996年出生。(編輯不得不注:後生可畏!!)node

安裝

普通script標籤引入:git

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

經過 Node.jsnpm 安裝:github

$ npm install min

若是你正在使用 SeaJS,你能夠經過 spm 進行安裝:redis

$ spm install iwillwen/min

若是你喜歡 component,你也能夠使用它進行安裝:數據庫

$ component install iwillwen/mindb

或者 bower?:npm

$ bower install mindb

基本使用方法

基本的鍵值存儲能夠經過SETGET等命令操做:segmentfault

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 的官方網站中獲得啓示。promise

語法糖(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 文檔.


更多信息,能夠閱讀其項目的說明

相關文章
相關標籤/搜索